将自动递增主键插入另一个表(稍后加入)

3 mysql sql

我是MySQL的新手,我希望我能把事情做对.我已经建立了一个包含3个表的数据库,其列如下(主键是PK):

Users

  • uid(PK)
  • 用户名

Directories

  • UID
  • 路径
  • 项目

DirInfo

  • infoID(PK)
  • 尺寸
  • dateofcheck
  • 存在
  • PATHID

当我向Directories.pathID插入NULL值时,我得到一个新的pathID(自动增量).然后,我如何将相同的pathID插入DirInfo.pathID?

我是否必须对INSERT和SELECT运行多个查询以使每个表中的每个列保持最新,或者我做错了什么.

Bil*_*win 5

该函数LAST_INSERT_ID()返回INSERT期间自动增量列分配的最后一个值.随后可以在插入从属表时使用它.

INSERT INTO Directories (pathId) VALUES (NULL); -- auto-increment
INSERT INTO DirInfo (pathId) VALUES ( LAST_INSERT_ID() );
Run Code Online (Sandbox Code Playgroud)

或者您可以设置MySQL用户变量,以便重复使用它.

INSERT INTO Directories (pathId) VALUES (NULL); -- auto-increment
SET @pathId := LAST_INSERT_ID();
INSERT INTO DirInfo (pathId) VALUES ( @pathId );
Run Code Online (Sandbox Code Playgroud)