0
嗨,那裏我試圖學習MySQL,但是,我定義了一個觸發器後,應該對錶中的列進行更新操作後,它不工作正常。當我更新這個列時,它應該立即刪除一行(這個列的類型是DATE,並且在開始時它被聲明爲NULL)。這是我的表更新操作後應該刪除行的觸發器無法正常工作
Create Table Projects (
pro_ID INT NOT NULL,
pro_Name VARCHAR(150) NOT NULL,
comp_date_info DATE DEFAULT NULL,
PRIMARY KEY(pro_ID)
);
的結構,我嘗試添加一個元組與存儲過程
DELIMITER //
CREATE PROCEDURE insert_into_Projects (IN projectID INT, IN projectName VARCHAR(50))
BEGIN
INSERT INTO homework.Projects values (projectID, projectName,NULL);
END //
DELIMITER ;
,這是添加新的元組到項目表調用語句
call insert_into_Projects(111,'Project Mayhem');
到目前爲止,你可以意識到我有一個元組像
pro_ID pro_Name comp_date_info
1) 111 Project Mayhem NULL
,這是觸發執行
DELIMITER //
CREATE TRIGGER after_Projects_update
AFTER UPDATE ON homework.Projects
FOR EACH ROW
BEGIN
delete from homework.Projects
where comp_date_info != NULL;
END //
DELIMITER ;
最後我想每當我更新這個元組的comp_date_info到合適的日期值觸發應該將其刪除。
update homework.Projects
set comp_date_info = '1989-04-05'
where pro_ID = 113;
但我與說
Error Code: 1442. Can't update table 'Projects' in stored function/trigger because it is already used by statement which invoked this stored function/trigger.
我會感激,如果你能幫助一個錯誤,感謝您的答覆方式,通過面向。
但是第一種方式是合乎邏輯的嗎?因爲我想我應該給一個不是null的值,然後我必須將它更新爲NULL? – quartaela