2011-11-12 19 views
1

我有一個表:觸發,達到創紀錄自動添加到另一個表

項目

itemID int autoincrement 
itemName text 

itemAvailability

itemID  integer REFERENCES Items (itemID) 
availability integer DEFAULT 0 

我需要一個觸發做:

當用戶會將一條記錄添加到Items表中,觸發器必須自動將一條記錄添加到itemAvailability表中。

itemAvailability.itemID = Items.itemID

在那一刻我來到了這一點並堅持:

CREATE TRIGGER updateItemsAvailabilityTbl AFTER INSERT ON items 
BEGIN 
INSERT INTO itemAvailability (itemID) 
VALUES (items.itemID) 
END 

很好,它不會爲我工作。請幫忙。

回答

1

您的CREATE TRIGGER語句中有兩個錯誤。 1.由於其被寫入documentation

觸發器操作可以訪問該行的元素被插入,刪除或 使用的形式「NEW.column名稱」的引用和更新 「OLD.column名「,其中column-name是與觸發器關聯的 表中的列的名稱。 OLD和NEW引用只能在觸發器可用於對 它們是相關的事件,如下所示:

插入新的引用是有效

UPDATE NEW和OLD引用是有效

刪除舊引用有效

所以,你應該寫new.itemID而不是items.itemID。 2. INSERT INTO語句應以分號結尾。試試這個:

CREATE TRIGGER updateItemsAvailabilityTbl AFTER INSERT ON items 
BEGIN 
INSERT INTO itemAvailability (itemID) 
VALUES (new.itemID); 
END 
+0

非常感謝。有用 – NCFUSN

相關問題