2014-10-08 79 views
0

所以我有這個代碼,我想弄清楚,我不知道如何完全複製我的輸入從一個表到另一個。如何將mysql輸入複製到另一個表中?

說我有這個輸入

Insert into TABLE Value ('blah'); 

,我想我剛插入的值,並將其插入到另一個表

Insert into ANOTHERTABLE value ('blah'); 

但在這種情況下,我不知道是什麼等等,我只是想從第一個陳述中複製它。我怎樣才能做到這一點?

+0

表是無序的套,所以沒有辦法知道什麼行對應以「插入你只是'沒有依靠別的東西。如果這是常規的事情,你可能需要一個觸發器。你能解釋一下你在做什麼以及爲什麼嗎? – 2014-10-08 01:08:55

+0

我想要設置一個觸發器語句,當我向第一個表中插入某些東西時,比如name,id和dob,我只想獲取名稱並將其插入到另一個表中,該表將對應於第一個表。 – 2014-10-08 01:12:09

+0

啊 - 你想要一個帶觸發器的自動插入。我相信你在下面有一個答案。 – airtech 2014-10-08 01:22:56

回答

3
delimiter // 

create table first_table 
(fieldname varchar(20)); 

create table second_table 
(fieldname varchar(20)); 

create trigger insert_into_second before insert on first_table 
    for each row begin 
     insert into second_table (fieldname) 
      values (new.fieldname); 
end 
// 

insert into first_table values ('blah'); 

delimiter ; 

select * from second_table; 

輸出獲得它:

| FIELDNAME | 
|-----------| 
|  blah | 

小提琴示範:http://sqlfiddle.com/#!2/e4384/1/0

注意如何在小提琴,只是做一個INSERT INTO FIRST_TABLE後,我從SECOND_TABLE選擇,它反映了INSERT INTO FIRST_TABLE。創建此觸發器後,任何進入FIRST_TABLE的插入操作都將進入SECOND_TABLE。

在MySQL中,默認語句分隔符通常是分號(;),爲了創建觸發器,必須將其改爲其他內容,在這種情況下,我使用了雙斜槓(//),這就是爲什麼您會看到我將分隔符設置爲頂部的分隔符,然後在末尾返回分號。

+0

聲音正確,一旦海報澄清他想要觸發器 – airtech 2014-10-08 01:23:49

0

您正在尋找從select語句插入。至於「得到我剛剛插入的值」 - 當然你只需要運行兩次插入 - 其次在新表上。

您可以選擇您剛剛從數據庫中插入的數據,並使用WHERE條件彈出到新表

INSERT INTO TABLE (column_name) 
SELECT column_name 
FROM ANOTHERTABLE 
WHERE ANOTHERTABLE.ID = <YOUR ID HERE> 

如果沒有最後一個插入的主鍵(因爲它是汽車-Increment),你應該能夠LAST_INSERT_ID()以上的

+0

這將插入其他表的每一行,而不僅僅是他最後一次插入所反映的行。 – 2014-10-08 01:09:28

+0

這是正確的 - 抱歉。 – airtech 2014-10-08 01:12:32

0

理想情況下,你將有一些類型的變量傳遞給過程或查詢,那麼你可以這樣做:

declare 

@Blah varchar(10) 
,@NewId int 

set @Blah = 'blah' 


insert into blah 
values(@Blah) 

insert into blah2 
values(@Blah) 


--or you can do this 
insert into blah 
values(@Blah) 

--this gets the key of the table you just inserted 
set @NewId = SCOPE_IDENTITY() --LAST_INSERT_ID() or MySQL 


insert into blah2 
select blah 
from blah 
where id = @NewId 
相關問題