【问题标题】:Inserting an automatically generated index from a table into another table将一个表中自动生成的索引插入到另一个表中
【发布时间】:2011-04-29 16:05:31
【问题描述】:

假设我们有两个表:

  • table1 (id, name, type) 其中id 是主键,并且自动递增
  • table2 (item_id, place) 其中item_id 指的是idtable1

我想做以下事情:

insert into table1(name, type) values (y, z);

假设该查询将为该行分配id=x,那么:

insert into table2(item_id, place) values (x, w);

我怎么能这样做? 换句话说,我怎样才能得到刚刚添加的行的id

【问题讨论】:

  • 你是单独用mysql做的吗?是否涉及任何语言?
  • 单行插入或集合?相同的来源,例如 bcp 或临时表?

标签: mysql sql


【解决方案1】:
insert into table1(name, type) values (y, z);
insert into table2(item_id, place) values (LAST_INSERT_ID() , w);

LAST_INSERT_ID() 将为您执行此操作。大多数编程语言都有一个特殊的函数可以为你调用它,但它在纯 MySQL 中工作。

【讨论】:

  • 这是一个网络脚本,如果两个用户同时使用该页面,第一个插入值然后第二个用户插入他之后,这是否意味着 LAST_INSERT_ID() 将返回插入的第二个用户的价值,还是第一个“当前”??
  • 该变量“按连接”工作,因此只要您不在用户之间共享连接,就不会发生这种情况。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-03-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-11-17
相关资源
最近更新 更多