JAVA操作数据库,向两张表插入一条数据,请问如何实现?

数据库为MySQL

我现在有两张

user_login, user_information

其中user_login有id, username, password字段

user_information有id, real_name, address, education字段

user_login的id为自增长,user_information的id与user_login的id相同

然后我想插入一条数据

username qwe
password 123
real_name 王子
address 南极
education 本科

请问怎么写插入语句

阅读 1.9k
1 个回答

https://stackoverflow.com/que... 低版本可以用这个方案。

如果你用的是mysql 8.0及以上版本,我更推荐CTE方案,它的可读性和可维护性更好:

with inserted_user_id as (
    insert into user_login (username, password)
    values ('user1', 'password1')
    returning id
)
insert into user_information (id, real_name, address, education)
select id, 'user1_real_name', 'user1_addr', 'user1_education'
from inserted_user_id

CTE本身就是在事务执行的,所以无需再包装到事务中。

当然如果你用的是java的一些ORM框架,直接在ORM级别处理就完事了,不需要自己去写SQL,可读性会更好。写代码本来就是以可读性为第一优先级,至于性能,在保证可读性的基础上再考虑吧

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题