mysql - 如何使用剩余表的自动增量值插入多个表

标签 mysql database

例如,我有一个包含 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/

相关文章:

mysql - 数据库设计 : simplifying many to many

c# - Entity Framework 不建立关联并显示联结表

mysql - SQL 插入数据类型数字插入溢出错误

PHP循环语句

mysql - 无法将 C3P0PooledDataSource 类型的属性值转换为属性 dataSource 所需的类型 javax.sql.DataSource

jquery - 将 jquery post 数据保存在变量中

java - mysql 的一句话中可能有 3 个插入吗?

php - 如何创建 sql_query

mysql - wordpress 数据库 (wp_post_meta) 结构效率

php - MySql 整个数据库(表和实体)与备份一起删除。有没有办法重新创建它。