鉴于以下表格:
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`)
);
我想INSERT
从foo
到table2
的几行(值table1
),并返回table2
' s table1Id
字段表示目标表中新生成的主键。这在一个查询中是否可行?
答案 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语句来完成你描述的内容。