2014-05-10 31 views

回答

0

你可以用存儲過程來做,但我會使用觸發器。

使用存儲過程時,我會感覺到使用其他數據庫表上的遊標來讀取記錄並將它們與Table1中的值進行比較以確定Table1的數據是否需要寫入到Table2中,如果是,去做吧。

與觸發器,我會簡單地更新以任何手段在表1中的數據,而不與覆蓋數據是什麼關於我自己,並在觸發,

使用使用##插入的新舊值& ##刪除(系統)表以確定是否需要將舊值(##已刪除)寫入表2。

0

你觸發語法是錯誤的

delimiter // 
CREATE TRIGGER items_ after update 
ON test 
for each row 
begin 
    INSERT INTO test2(id,namecan) values (old.id,old.namecan); 
end; // 
delimiter ; 

因此,這觸發將對TEST2表每次測試表從測試表中的舊行值更新行時間的條目。

0

如果你不希望使用觸發器,你可以去這個概念..
讓我們有一個從其中插入一個表上值的形式說寄存器表。並在去servlet MyServlet的形式的行動。在Myservlet 可以先獲取從註冊表中的數據,並將其存儲到Rsultset對象讓 RS。之後,將rs插入新表格。
請讓我知道,如果米不清楚你..

0

你應該調用old.id和old.namecan(我假設表'測試'有'id'和'namecan'字段)以獲得較舊數據。你的觸發器主體應該是這樣的

begin 
    INSERT INTO test2(id,namecan) value(old.id, old.namecan) 
end 

「老」將引用其更新記錄。

相關問題