【发布时间】:2021-03-07 16:54:07
【问题描述】:
我有 2 个如下表:
create TABLE person(
id INTEGER not NULL AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(255),
surrname VARCHAR(255)
);
create TABLE users(
id INTEGER not NULL AUTO_INCREMENT PRIMARY KEY,
login VARCHAR(50),
password VARCHAR(50),
person_id int references person(id)
);
我将插入添加到表“人”:
Insert into person(name,surrname) values ('mark','second');
现在我的问题开始了,因为当我尝试将插入添加到表“用户”时, 我必须将最后添加的 id 放在“person”表中。
Insert into users
(login,password,person_id)
values ('login123','pass123',>here must be last added id from person table<);`
在 oracle 数据库中,我会使用一个序列,但在这里不可能。有人可以知道应该有什么价值吗?
【问题讨论】:
-
第一次插入后,在下一次插入时使用
LAST_INSERT_ID()。 -
下一个插入应该是这样的?插入用户(登录名、密码、person_id)值('login123'、'pass123'、LAST_INSERT_ID());`
-
假设查询使用相同的连接,一个接一个,并且第一次插入没有错误,是的。第二个查询的值部分可能是:
...values ('login123','pass123', LAST_INSERT_ID()); -
是的,它的工作原理,但我想以不同的方式做到这一点。我想添加第一个插入,在下一个连接中,下一个插入?有可能吗?
-
有人可以帮我吗?因为我最终需要在 java 和 JDBC 中这样做,所以我不能在一个语句中进行两次插入,所以这是个大问题。
标签: mysql sql database insert sql-insert