当前位置:首页 » 数据仓库 » 数据库多表插入数据
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

数据库多表插入数据

发布时间: 2023-04-01 07:00:09

A. 数据库中两张表的部分数据怎么插入到另一张表中

下面以斗者派mysql数据库为例分情况一一说明:
两张表:insertTest和insertTest2,前者中有测试数据:
1.如果2张表的字段一致,并且希望嫌帆插入全部数据,可以用这种方法:
INSERT INTO 目标表 SELECT * FROM 来源表;
insert into insertTest select * from insertTest2;
2.如果只希望导入指定字段,可以用这种方法:
INSERT INTO 目标表 (字段1, 字段2, ...) SELECT 字段1, 字段2, ... FROM 来源表;
注意字段的顺序必须一致。
insert into insertTest2(id) select id from insertTest2;
3.如果您需要只导入目标表中不存在的记录,可以使用这种方法:
INSERT INTO 目空贺标表
(字段1, 字段2, ...)
SELECT 字段1, 字段2, ...
FROM 来源表
WHERE not exists (select * from 目标表
where 目标表.比较字段 = 来源表.比较字段);
1>.插入多条记录:
insert into insertTest2
(id,name)
select id,name
from insertTest
where not exists (select * from insertTest2
where insertTest2.id=insertTest.id);
2>.插入一条记录:
insert into insertTest
(id, name)
SELECT 100, 'liudehua'
FROM al
WHERE not exists (select * from insertTest
where insertTest.id = 100);

B. 怎么把数据同时插入到数据库的两个表中

严格意义上讲,没有所谓“同时插入”的手段,只有“要么都插入(分先后),要么都不插入”的机制,这个机制就叫做“事务”,是数据库服务器的执行单位,是原子操作。
由上,将两个insert命令包装为一个事务,如下:
declare @OK integer
begin transaction
set @OK = 0
while 1 = 1
begin
insert table1 values( ... )
set @OK = @@error
if @OK <> 0
Break
insert table2 values (... )
set @OK = @@error
Break
end
if @OK = 0
commit transaction
else
rollback transaction

通过触发器也能实现你的需求,其底层原理依然是事务,触发器和引发它执行的语句被自动地包装到一个事务中。不过,强烈不建议使用该方法,用此伎俩会导致业务逻辑分散,而人的思维还是需要一定的连贯性,集中在一起显然有助于表达和理解,当需要改进或者调试错误时徒增繁琐,实在是弊大于利。

C. SQL数据库批量添加数据

1、创建测试表,create table test_batch(id number, v_date date);


D. SQL数据库 触发器实现多表同步插入

create TRIGGER [dbo].[tr_tb_erp_make_Pack_insert]
ON [dbo].[tb_erp_make_Pack]
FOR INSERT
AS
BEGIN
SET XACT_ABORT ON
SET NOCOUNT ON
declare @out_Flag int=0
declare @out_Rtn varchar(40)=''
declare @smsg nvarchar(400)
DECLARE @v_barCode VARCHAR(20)
DECLARE @v_cInvCode NVARCHAR(20)
DECLARE @v_packID INT
DECLARE @v_packDate DATETIME
DECLARE @v_userID INT
begin tran
DECLARE Cur CURSOR FOR
SELECT barCode,cInvCode,packID,packDate,userID FROM insertedOPEN Cur
FETCH NEXT FROM Cur INTO @v_barCode,@v_cInvCode,@v_packID,@v_packDate,@v_userIDWHILE @@FETCH_STATUS=0
BEGIN
SET @out_Flag = 0
SET @out_Rtn='添加成功!'
IF EXISTS(SELECT 1 FROM tb_erp_make_barCode WHERE barCode=@v_barCode)BEGIN
UPDATE dbo.tb_erp_make_barCode SET cInvCode=@v_cInvCode,packID=@v_packID,packDate=@v_packDate,vFlag=0 WHERE barCode=@v_barCodeIF @@error <> 0
BEGIN
SET @out_Flag=1
SET @out_Rtn='触发器修改(UPDATE)错误!'
SET @smsg='错误:'+@out_Rtn
ROLLBACK TRAN
RAISERROR (@smsg,11,1)
RETURN
END
END
ELSE
BEGIN
INSERT INTO dbo.tb_erp_make_barCode
(
barCode ,packID ,packDate ,cInvCode
)
VALUES (
@v_barCode ,@v_packID ,GETDATE() ,@v_cInvCode)
IF @@error <> 0
BEGIN
SET @out_Flag=2
SET @out_Rtn='触发器新增(INSERT)错误!'
SET @smsg='错误:'+@out_Rtn
ROLLBACK TRAN
RAISERROR (@smsg,11,1)
RETURN
END
END
FETCH NEXT FROM Cur INTO @v_barCode,@v_cInvCode,@v_packID,@v_packDate,@v_userIDEND
CLOSE Cur
DEALLOCATE Cur
COMMIT TRAN
RETURN

E. 怎么往 Access / Oracle 数据库里一次性插入多条数据

可以利用excel进行多条数据的输入,保存为表格文件,同时利用access导入表格的形式来实现。
1.首先创建新建数据库。
2.点击头部导航的“外部数据”。
3.找到头部导航的“导入Access数据库”,左键点击打开。
4.左侧选择要导入外部数据库的方式,点击浏览,找到外部数据库存放的路径。
5.选择外部数据库要添加的表,我们在这选择“info”和“news”2张表做演示。
6.点击“保存导入”后,你就会发现,原先你要创建的表中多了“info”和“news”2张表。到此,外部数据库表成功导入。

F. 如何用一个form 向一数据库 的多个 表 同时插入数据

form可以把action提交一个servlet中,在servlet中连接数据库,sql语句写"insert
“语句就ok了,

G. sql数据库中怎么插入多个表中的数据

你是要用SQL语句插入数据吗?如果是的话你就用这个试下
create table MyDB
(
ID int primary key identity(1,1),
Name nvarchar(50) not null,
Salary int not null,
Age int not null
)

insert into MyDB(Name,salary,age) values('小明',5000,20)
insert into MyDB(Name,salary,age) values('王二虎',3580,22)
insert into MyDB(Name,salary,age) values('王中出',4122,19)
insert into MyDB(Name,salary,age) values('方为',5122,28)
select name as 姓名,salary as 工资,age as 年龄 from mydb
建表,插入,查询语句都有。同时执行分段执行都可以。。
insert是插入数据,select是查询数据。
create table 是建表语句!