所以我有這個代碼,我想弄清楚,我不知道如何完全複製我的輸入從一個表到另一個。如何將mysql輸入複製到另一個表中?
說我有這個輸入
Insert into TABLE Value ('blah');
,我想我剛插入的值,並將其插入到另一個表
Insert into ANOTHERTABLE value ('blah');
但在這種情況下,我不知道是什麼等等,我只是想從第一個陳述中複製它。我怎樣才能做到這一點?
所以我有這個代碼,我想弄清楚,我不知道如何完全複製我的輸入從一個表到另一個。如何將mysql輸入複製到另一個表中?
說我有這個輸入
Insert into TABLE Value ('blah');
,我想我剛插入的值,並將其插入到另一個表
Insert into ANOTHERTABLE value ('blah');
但在這種情況下,我不知道是什麼等等,我只是想從第一個陳述中複製它。我怎樣才能做到這一點?
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中,默認語句分隔符通常是分號(;),爲了創建觸發器,必須將其改爲其他內容,在這種情況下,我使用了雙斜槓(//),這就是爲什麼您會看到我將分隔符設置爲頂部的分隔符,然後在末尾返回分號。
聲音正確,一旦海報澄清他想要觸發器 – airtech 2014-10-08 01:23:49
您正在尋找從select語句插入。至於「得到我剛剛插入的值」 - 當然你只需要運行兩次插入 - 其次在新表上。
您可以選擇您剛剛從數據庫中插入的數據,並使用WHERE條件彈出到新表
INSERT INTO TABLE (column_name)
SELECT column_name
FROM ANOTHERTABLE
WHERE ANOTHERTABLE.ID = <YOUR ID HERE>
如果沒有最後一個插入的主鍵(因爲它是汽車-Increment),你應該能夠LAST_INSERT_ID()以上的
這將插入其他表的每一行,而不僅僅是他最後一次插入所反映的行。 – 2014-10-08 01:09:28
這是正確的 - 抱歉。 – airtech 2014-10-08 01:12:32
理想情況下,你將有一些類型的變量傳遞給過程或查詢,那麼你可以這樣做:
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
表是無序的套,所以沒有辦法知道什麼行對應以「插入你只是'沒有依靠別的東西。如果這是常規的事情,你可能需要一個觸發器。你能解釋一下你在做什麼以及爲什麼嗎? – 2014-10-08 01:08:55
我想要設置一個觸發器語句,當我向第一個表中插入某些東西時,比如name,id和dob,我只想獲取名稱並將其插入到另一個表中,該表將對應於第一個表。 – 2014-10-08 01:12:09
啊 - 你想要一個帶觸發器的自動插入。我相信你在下面有一個答案。 – airtech 2014-10-08 01:22:56