當前位置:首頁 » 數據倉庫 » 資料庫多表插入數據
擴展閱讀
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 是建表語句!