Mysql 如何使用剩余表的自动增量值插入多个表
例如,我有一个包含两个表的数据库。第一个表(表1)包括: userId是我的主键,它是自动递增的。我的下一张表(表2)有: userId(来自表2)是引用表1(userId)的外键。是否有一种方法可以插入到两个表的所有信息中,并让表2中的用户ID自动从表1中获取它引用的主键?或者我必须对每个表进行多次插入,并显式地使外键的值相同 您可以使用mysql的“Last\u insert\u id”,如下所示-Mysql 如何使用剩余表的自动增量值插入多个表,mysql,database,Mysql,Database,例如,我有一个包含两个表的数据库。第一个表(表1)包括: userId是我的主键,它是自动递增的。我的下一张表(表2)有: userId(来自表2)是引用表1(userId)的外键。是否有一种方法可以插入到两个表的所有信息中,并让表2中的用户ID自动从表1中获取它引用的主键?或者我必须对每个表进行多次插入,并显式地使外键的值相同 您可以使用mysql的“Last\u insert\u id”,如下所示- <?php $user_query="INSERT INTO accounts (us
<?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);
?>
好的,非常感谢。但是,如果我有多个线程从数据库中写入和提取数据,如果我同时写入了两次数据,我如何避免获取不正确的外键?您可以锁定表,而不是。我知道这很旧,但为了便于任何人阅读,如果您使用mysqli,不锁定表的更简单方法是:$db->query(“将值(NULL,'saving@gmail.com“,”XXXXXXXXX“)”;$db->查询(“插入到事务中(userProfileId、userAge、userGender、userId)值(NULL、25、'm'、”(int)$db->INSERT_id.);如果我没有错的话,您希望同时插入两个表,对吗?为此,您可以创建一个过程。请查看此
userProfileId int not null auto_increment primary key
userAge
userGender
userId
<?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);
?>