SQL语句怎么同时往两个表中插入不同的记录

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQL语句怎么同时往两个表中插入不同的记录相关的知识,希望对你有一定的参考价值。

比如有一个用户表,一个用户部门表,用户表里面含有用户部门ID,我要插入用户表的时候,同时往用户部门表里面插入一条记录. 这个怎么做?如果更新用户的同时更新用户部门表,这个怎么做

1、首先准备两个数据表,如下图所示,结构需要一样。

2、接着往第一个数据表先插入一些数据。

3、然后我们打开第二个数据表,这时你看到第二个里面是没数据的,我们需要将第一个中的插入进来。

4、接着编写插入语句,注意这次直接在insert后面用select获取数据。

5、然后我们就可以看到第二个数据表中有数据了。

6、最后在进行select查询数据的时候还可以用where进行筛选。

参考技术A 得用触发器,单纯用sql语句做不到
说一下,你用的什么数据库,也得把你的表结构给出来
或者你直接搜索 比如:sqlserver触发器
里边会有些例子的追问

我用SQLSERVER数据库,user表:
id ,name,email ,active ,sex , telephone ,cellphone ,position dept_id

user_dept表:
id,userid,userdept_id,updatetime,level
你能给个例子吗?

追答

能,20分钟左右,你刷新页面看下,我先拿你表里的东西写写

追问

恩恩 太感谢了!

追答

你表字段我没全用,我只给你写了个insert部分的

创建表

create table [user]
(id int,
name varchar(10),
dept_id int)


create table user_dept
(id int  identity(1, 1) primary key,
userid int,
userdept_id int,
updatetime datetime)

创建触发器


create trigger t_user
on [user] after insert
as
begin
insert into user_dept(userid,userdept_id,updatetime) select id,dept_id,GETDATE() from inserted
end

执行插入

insert into [user] values (1,'a',1)

查看结果

select * from user_dept

剩下那部分,建议你自己查资料来做吧

追问

恩恩 太感谢了

本回答被提问者和网友采纳

往新增中间表中插入旧数据

因需求需要,在项目中新增了中间表,但是需要之前的数据,顾记录下过程:

原来两个表:posts和users,关联关系:posts.poster_id = user.id;

新增中间表:posts_x_users,字段:posts_id,users_id,posts_id外键对应posts.id,users_id外键对应users.id

数据迁移:经查资料,需要用的insert into select语句

SQL:

INSERT INTO posts_x_users(posts_id,users_id)
SELECT posts.id,users.id
FROM posts
INNER JOIN users ON posts.poster_id = users.id;

以上是关于SQL语句怎么同时往两个表中插入不同的记录的主要内容,如果未能解决你的问题,请参考以下文章

插入数据库表中一条记录同时也插入另一个表中的SQL语句怎么写

怎么在Java中往数据库表插入新的内容

怎么往MySQL数据库里插入时间记录?就是简单的SQL语句,一句话的例子!谢谢了

如何用SQL语句删除两个表中相同的记录?

SQL语句 存在就更新不存在就插入

如何在 SQL 服务器中将数据插入到两个不同的表中,同时在 SQL 中具有 ORDER# 主键