2010-11-19 79 views
0

當前我正面臨一個相當奇怪的要求,但是,它必須解決!在MySQL中插入多個表時重複行

我們有幾個表,具有以下名稱:

file_1,file_2,file_3。

如果用戶向file_1插入一行,它必須在file_2 & file_3中重複。如果用戶在file_2中插入一行,file_1 & file_3上也必須如此。我已經嘗試創建一個這樣的觸發器:

CREATE TRIGGER duplicatepictures BEFORE INSERT ON wp_ngg_pictures 
    FOR EACH ROW 
    INSERT INTO wp_2_ngg_pictures(post_id, galleryid, filename, description, alttext, imagedate, exclude, sortorder, meta_data) 
    VALUES (NEW.post_id, NEW.galleryid, NEW.filename, NEW.description, NEW.alttext, NEW.imagedate, NEW.exclude, NEW.sortorder, NEW.meta_data); 

但是,這並不奏效,因爲沒有行插入,如果這個觸發器被添加到多個表。

整個事情必須在SQL中解決,因爲將信息輸入數據庫的程序不能更改。有什麼建議麼?

UPDATE:

我忘了提,一個插入的行後,他們必須彼此編輯indepent。

+0

愚蠢的問題:爲什麼你必須跨表複製行?這通常是一件壞事。 – 2010-11-19 13:13:41

+0

在這樣的一個尷尬的情況下,我會cronjob一個PHP腳本來做所需的工作。 – 2010-11-19 13:16:35

+0

無論如何,我認爲觸發應該是CREATE ... AFTER INSERT ... – MatTheCat 2010-11-19 13:22:02

回答

0

你可以用視圖解決它(需要MySQL 5)。

創建一個保存所有文件(例如file_all)並插入所有現有記錄的表。

然後下降file_1,file_2和file_3:

drop table file_1; 
drop table file_2; 
drop table file_3; 

然後創建3個觀點:

create view file_1 as select * from file_all; 
create view file_2 as select * from file_all; 
create view file_3 as select * from file_all; 

查看updatable views

+0

聽起來不錯!但不幸的是,我忘了提及,後來在桌面上應該是可編輯的,彼此不會相互拖延。 – 2010-11-19 13:21:58

0

的文檔可以file_2和file_3進行file_1的別名?

+0

不幸的是,因爲表格必須是相互獨立可編輯的。 – 2010-11-19 13:31:46