0
將數據插入到event_date
列後,我想要一個觸發器來更新同一個表的兩列並將行的相應值'event_quarter'和'event_year'。當插入一行後觸發一個動作更新兩列的Mysql錯誤1442
我有這個測試table
四列:
id
,event_date
,event_quarter
,event_year
我一直在努力與此代碼,使其工作:
DELIMITER $$
CREATE TRIGGER `fill_event_quarter_and_year`
AFTER INSERT
ON `test_table`
FOR EACH ROW
BEGIN
DECLARE event_date_ DATE;
SELECT event_date
INTO event_date_
FROM `test_table`
WHERE NEW.id = id;
UPDATE `test_table`
SET event_quarter = QUARTER(event_date_), event_year = YEAR(event_date_)
WHERE NEW.id = id;
END
$$
然而,我得到以下錯誤:
1442 - Can't update table 'test_table' in stored function/trigger because it is already used by statement which invoked this stored
function/trigger
我該如何解決?
然後它看起來像我必須做兩個觸發器,一個用於這個INSERT
ing動作,另一個用於UPDATE
動作。對?更新特定的行或記錄時會如何?
或者是否有可能觸發更新和插入操作?