我对MySQL很陌生,我希望我能把事情搞定。 我已经建立了一个包含3个表的数据库,其列如下(主键是PK):
Users
表
Directories
表
DirInfo
表
当我向Directories.pathID插入NULL值时,我得到一个新的pathID(自动增量)。然后,我如何将相同的pathID插入DirInfo.pathID?
我是否必须对INSERT和SELECT运行多个查询以使每个表中的每列保持最新,或者我是否做错了。
答案 0 :(得分:5)
函数LAST_INSERT_ID()
返回INSERT期间自动增量列分配的最后一个值。随后可以在插入从属表时使用它。
INSERT INTO Directories (pathId) VALUES (NULL); -- auto-increment
INSERT INTO DirInfo (pathId) VALUES ( LAST_INSERT_ID() );
或者您可以设置MySQL用户变量,以便重复使用它。
INSERT INTO Directories (pathId) VALUES (NULL); -- auto-increment
SET @pathId := LAST_INSERT_ID();
INSERT INTO DirInfo (pathId) VALUES ( @pathId );