我正在使用MySQL。我必须使用多个insert语句创建一个存储过程。第二个插入语句应在其中插入第一个行ID。
第三个insert语句需要第二个插入的行ID。以下是我的SQL语句,
INSERT INTO table1( ccc ) VALUES ( 'a' );
SET scopeIdentity = LAST_INSERT_ID();
INSERT INTO table2( ccc,tttId ) VALUES ( 'b',scopeIdentity );
SET SET scopeIdentity2 = LAST_INSERT_ID();
INSERT INTO table3( ccc,tttId2 ) VALUES ( 'b',scopeIdentity2 );
任何建议最欢迎!
提前致谢
Sangeetha
最佳答案
您可以这样尝试:
INSERT INTO table1( ccc ) VALUES ( 'a' );
INSERT INTO table2( ccc,tttId ) VALUES ( 'b',LAST_INSERT_ID());
INSERT INTO table3( ccc,tttId2 ) VALUES ( 'b',LAST_INSERT_ID());
即,您不必在变量中设置LAST_INSERT_ID()的值,然后使用该变量插入值。
还要检查mysql_insert_id()
INSERT语句将值存储到AUTO_INCREMENT列中。是否通过存储自动生成值,这是正确的
特殊值NULL或0进入列,或者是显式的
非特殊值。
对于多行INSERT语句,mysql_insert_id()的返回值取决于MySQL服务器版本。
关于mysql - 从MySQL获取scope_identity,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29793806/