我正在尝试在 Android 中创建一个预订应用程序。我有一个连接到的 mysql 数据库。
目前我有两个表 - 客户详细信息
和客户登录
,其中登录中的p_ID
作为主键
和相同的 p_ID
是详细信息表中的外键
。每次有新人注册时,该值都会设置为自动递增。但是我不明白如何将它们链接在一起。由于它们是唯一的并且自动递增,因此我无法在不手动填写的情况下找到链接它们的方法。
所以我的问题是:我这样做完全错了吗?我应该手动设置 ID 吗?例如,当用户注册时,将登录表链接到一般客户详细信息的正确方法是什么?如何在维护匹配 ID 的同时添加到两个表?
例如:
登录
表:
P_ID (PK) | username | password
-------------------------------
1 | me | me123
详细信息
表:
name | age | location | P_ID (FK)
---------------------------------
john | 40 | UK | 1
最佳答案
您的数据库结构正常,但您无法使用单个 SQL 查询在两个表中插入数据。相反,您可以将事务与 LAST_INSERT_ID()
函数一起使用:
BEGIN;
INSERT INTO login (`username`, `password`)
VALUES('me', 'me123');
INSERT INTO datails (`P_ID`, `name`, `age`, `location`)
VALUES(LAST_INSERT_ID(), 'john', '40', 'UK');
COMMIT;
由于您的主 ID 在您的 login
表中是自动增量的,因此使用这种方法您根本不需要关心它。 details
表中的外键不能是自增的,而只能是普通整数。
关于mysql - SQL - 当用户注册时更新两个表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36086145/