例如,我有一个包含 2 个表的数据库。第一个表(table1)有:
userId int not null auto_increment primary key
userEmail
userPassword
userId 是我的主键,它会自动递增。我的下一个表(表2)有:
userProfileId int not null auto_increment primary key
userAge
userGender
userId
userId(来自表2)是引用表1(userId)的外键。有没有办法插入两个表的所有信息,并让 table2 中的 userId 自动获取它从 table1 引用的主键?或者我是否必须为每个表执行多次插入并显式使我的外键具有相同的值。
最佳答案
您可以使用mysql的“Last_insert_id”,如下所示-
<?php
$user_query="INSERT INTO accounts (userId,userEmail,userPassword) VALUES (NULL,'saving@gmail.com','XXXXXXXXX')";
$profile_query="INSERT INTO transactions(userProfileId,userAge,userGender,userId) VALUES (NULL,25,'m'LAST_INSERT_ID)";
$a_query=mysql_query($user_query);
$t_query=mysql_query($profile_query);
?>
注意:mysql_* 已弃用。相反,您可以使用 PDO 语句。
引用:http://in3.php.net/manual/en/function.mysql-insert-id.php
引用:http://dev.mysql.com/doc/refman/5.0/en/information-functions.html#function_last-insert-id
关于mysql - 如何使用剩余表的自动增量值插入多个表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19555804/