【问题标题】:Inserting two columns at the same time [duplicate]同时插入两列[重复]
【发布时间】:2020-06-24 00:12:09
【问题描述】:

我正在尝试插入两个连接的表。

表 1:锻炼(id,...)id 自动递增。

表 2:customWorkouts(id, trainingID, ....)

但问题是,这两个表是相连的,customWorkouts.workoutID 引用了锻炼.id。

我的问题是,如何执行两个后续查询,第一个创建新的锻炼,第二个创建相关的 customWorkouts?如何使创建的 customWorkouts 立即连接到我刚刚创建的锻炼?

【问题讨论】:

  • 在第二个查询中使用 LAST_INSERT_ID() 来获取在第一个查询中创建的自动增量 ID。
  • 那100%解决了,谢谢!

标签: mysql sql database sql-insert last-insert-id


【解决方案1】:

使用last_insert_id():

insert into workouts(col1, col2) values('foo', 'bar');
insert into custom_workouts(workout_id, col1) values(last_insert_id(), 'baz');

请注意,这要求您在同一连接上运行两个查询:

对于LAST_INSERT_ID(),最近生成的 ID 在每个连接的基础上维护在服务器中。它不会被其他客户端更改。

【讨论】:

  • @BassamKaddoura:是的,这在多连接环境中是安全的。请参阅我添加到答案中的文档中的引用。
  • 是的,我刚刚阅读了 Barmar 链接的帖子,谢谢! ^^
猜你喜欢
  • 1970-01-01
  • 2013-05-06
  • 2014-10-07
  • 2017-11-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-01-26
相关资源
最近更新 更多