当前位置: 首页 > 知识库问答 >
问题:

mysql

赫连秦迟
2023-03-14

我的sql数据库中有两个数据库表。第一个是个人表,另一个是付款明细。个人表中的自动递增id被用作付款明细的外键。我必须一次插入两个数据到这个表中。通常我应该插入数据到个人表中,并获得这一行的自动增量id,并将数据插入到付款数据表中。但是我有一些问题。

  • 我无法使用我的sql SELECT查询获得自动增量IDeasily.because还有更多的colum要通过WHERE检查。
  • 获取最后一个插入id不是完美的方法。因为其他用户可以在我访问时插入另一个人的数据,而我收到了错误的id。

关于这一点,我没有什么好的知识。帮帮我!

共有1个答案

杨海
2023-03-14

我真的不知道你的结构,但这里最好的方法是使用事务。链接:http://dev.mysql.com/doc/refman/5.7/en/commit.html.

START TRANSACTION;
INSERT /* Your insertion into personalTable */
SELECT @lastId:=LAST_INSERT_ID();
INSERT INTO paymentTable SET (user_id) VALUES (@lastId);
COMMIT;

此外,您还需要将事务隔离级别设置为可序列化,以防止任何事务冲突。

UPD。谢谢@Drew让我挖得更深。

 类似资料:
  • 问题内容: 如何在Python3中将输入转义到MySQL数据库?我正在使用PyMySQL,并且工作正常,但是当我尝试执行以下操作时: 如果字符串具有或,则它将不起作用。我也尝试过: 问题在于该库(PyMySQL)使用了Python2.x的格式语法,该语法不再起作用。我也发现了这个可能的解决方案 在这里,但我不知道在何处添加此代码。这就是我得到的一切: 编辑:我解决了!在PyMySQL中,正确的方法

  • 问题内容: 我有两个表(“国家/地区”和“鸭子”),其中“国家/地区”表包含世界上每个国家/地区,并且“鸭子”表中有一个鸭子列表,其中有一个country_id字段可链接到主要国家/地区。 我正在尝试获取仅包含至少一只鸭子的国家/地区列表,并从鸭子表中找到该国家内评分最高的鸭子的单个匹配记录。到目前为止,我有: 这将返回每只鸭子的列表,而不是每个国家/地区的列表。 如果有人能指出我正确的方向,我将

  • 问题内容: 我刚刚在计算机上安装了MySQL,当我尝试从MySQL Shell创建数据库时,出现此错误: 有人知道为什么会这样吗?MySQL的安装有问题吗? 问题答案: 通过在这里查看该线程,您似乎可以在js模式下使用shell,您可以通过使用switch来将其关闭 https://forums.mysql.com/read.php?10,661192,661203#msg-661203

  • 问题内容: 我有一个表,其中包含有关事件和节日的数据,下面的列记录了它们的开始和结束日期。 开始日期 结束日期 日期格式为。我需要在以下情况下获取事件详细信息。 需要获取所有从当前月份开始的事件,并且结束日期可以说什么。 我对结束日期的概念很清楚。但不确定如何获取开始日期为当前月份的数据。为此,我需要将当前年份和当前月份与数据库中的列进行比较。 谁能帮助我指出我该怎么做? 问题答案:

  • 问题内容: 我想运行一个查询,该查询仅从特定字段返回第一个单词,该字段具有多个由空格分隔的单词,我想我可能需要执行一些正则表达式工作来完成此操作?我知道如何使用PHP中的几种方法来执行此操作,但这最好在数据库端执行。任何想法表示赞赏。谢谢。 问题答案: :http : //dev.mysql.com/doc/refman/5.0/zh- CN/string-functions.html#funct

  • 问题内容: 说我有一张这样的表: 如何才能以这种格式对结果进行实际排序?即由父级->子级->子子级命令,根据我只要求说最多5个级别?我已经研究了“嵌套集模型”,但是对于我的要求而言,它似乎太复杂了。我不确定的是真正理解了可用于显示如上所示结果的SQL查询,或者在这种情况下,我应该使用像PHP这样的服务器端语言来帮我吗? 问题答案: 您可以尝试以下方法: 如果层次结构是有限的,则不需要递归查询。 o

  • 问题内容: 我在同一服务器上的2个不同数据库中有2个相同的表。将数据从表复制到另一个表的最佳方法是什么? 问题答案: 使用: 存在是经过简化的,但是如果有主键/ auto_increment可以担心/等,那么您就省去了。

  • 问题内容: 我有一个MySQL表,如下所示: 现在,我想有一个简单的MySQL查询,只需向其提供ID [例如说id=19],然后就应该获取其所有子ID [即结果应具有ID ‘20,21,22’]…。 孩子的等级未知;它可能会有所不同.... 我知道如何使用for循环…但是如何使用单个MySQL查询实现相同的目标? 问题答案: 对于MySQL 8+:使用递归with语法。 对于MySQL 5.x:使