插入一个新的记录到MySQL表中,并为多个表添加具有相同ID的新记录
问题描述:
我正在设计一个糖尿病管理系统,我的问题是关于在两个表中插入新记录。我有一个用户表的字段: user_ID(PK),用户名,密码等 我也有配置文件表,它存储有关用户的个人信息。配置文件: User_ID(用户表中的FK),名字,姓氏,地址等。插入一个新的记录到MySQL表中,并为多个表添加具有相同ID的新记录
我已将user_id作为外键存储在配置文件表中,因为我想让用户与其自己的配置文件关联。例如。具有User_Id'3'的用户名为grover的人将拥有包含个人信息的个人资料,而个人资料表中的user_ID也将为'3'。我希望以上是有道理的。我的问题是,当我将表单中的数据存储到变量中时,我将如何编写查询以便创建新记录,并将正确的字段存储在正确的表中,使新记录具有相同的user_ID用户和配置文件表。
答
试试看LAST_INSERT_ID函数。这会给你刚才输入的记录的PK,也就是你的user_id,你可以相应的连接表
insert into Users values (null,'asdf','asdf',3,1);
Query OK, 1 row affected (0.00 sec)
mysql> select last_insert_id();
+------------------+
| last_insert_id() |
+------------------+
| 1 |
+------------------+
1 row in set (0.00 sec)
你去那里
在使用,因此会是正确的做到以下几点?插入用户 (User_id,用户名,密码) values('','$ Username','$ Password'); 然后插入形式的其它部分到其他表如下: 插入到简档 (USER_ID,名字,姓氏) 值(“LAST_INSERT_ID()”,“$姓”,“$名字”); – 2012-04-26 17:34:00
只要你确定没有其他人(包括你)在这两个调用之间插入数据到你的数据库 – 2012-04-26 17:50:06
有没有其他选择,因为它可能是另一个记录被创建?我不认为会发生这种情况,因为从注册表中收集数据之后会有两个连续的查询。我会尝试。 – 2012-04-26 18:02:16