在UPDATing源表时插入一个表

时间:2014-04-21 18:52:41

标签: mysql

鉴于以下表格:

CREATE TABLE `table1` (
  `table1Id` int(11) NOT NULL AUTO_INCREMENT,
  `foo` varchar(255) NOT NULL,
  PRIMARY KEY (`table1Id`)
);

CREATE TABLE `table2` (
  `table2Id` int(11) NOT NULL AUTO_INCREMENT,
  `table1Id` int(11) NOT NULL,
  `foo` varchar(255) NOT NULL,
  PRIMARY KEY (`table2Id`)
);

我想INSERTfootable2的几行(值table1),并返回table2' s table1Id字段表示目标表中新生成的主键。这在一个查询中是否可行?

1 个答案:

答案 0 :(得分:0)

不,在单个SQL语句中不可能。


<强>更新

重新阅读问题之后,我发现我错过了这条船......插入table1的行是 FROM table2。所以我的回答是关于&#34;插入&#34;进入table2是远离。

如果table2中的foo上有唯一键,则可以在table1上使用AFTER INSERT触发器,触发器可以执行table2的更新。 (auto_increment table1id列的值在AFTER INSERT触发器中可用。

作为另一种选择,您可以考虑将table2id列添加到table1,并将table2中的值插入table1 ...然后您可以从中更新table2。

但是底线,回答你的问题,不,它不可能用一个SQL语句来完成你描述的内容。