CREATE TRIGGER items_
ON test
after update
AS
begin
INSERT INTO test2(id,namecan)
SELECT id,namecan from test
end
我試圖與觸發,但我沒有得到任何結果,所以請幫助我如何對付它 方法涉及兩個存儲過程也是受歡迎的每當我更新我的表,我想保存我的舊數據(舊行)在新表
CREATE TRIGGER items_
ON test
after update
AS
begin
INSERT INTO test2(id,namecan)
SELECT id,namecan from test
end
我試圖與觸發,但我沒有得到任何結果,所以請幫助我如何對付它 方法涉及兩個存儲過程也是受歡迎的每當我更新我的表,我想保存我的舊數據(舊行)在新表
你可以用存儲過程來做,但我會使用觸發器。
使用存儲過程時,我會感覺到使用其他數據庫表上的遊標來讀取記錄並將它們與Table1中的值進行比較以確定Table1的數據是否需要寫入到Table2中,如果是,去做吧。
與觸發器,我會簡單地更新以任何手段在表1中的數據,而不與覆蓋數據是什麼關於我自己,並在觸發,
使用使用##插入的新舊值& ##刪除(系統)表以確定是否需要將舊值(##已刪除)寫入表2。
你觸發語法是錯誤的
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表每次測試表從測試表中的舊行值更新行時間的條目。
如果你不希望使用觸發器,你可以去這個概念..
讓我們有一個從其中插入一個表上值的形式說寄存器表。並在去servlet MyServlet的形式的行動。在Myservlet 可以先獲取從註冊表中的數據,並將其存儲到Rsultset對象讓 RS。之後,將rs插入新表格。
請讓我知道,如果米不清楚你..
你應該調用old.id和old.namecan(我假設表'測試'有'id'和'namecan'字段)以獲得較舊數據。你的觸發器主體應該是這樣的
begin
INSERT INTO test2(id,namecan) value(old.id, old.namecan)
end
「老」將引用其更新記錄。
什麼是新舊數據? –