我正在使用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/

10-16 15:46