我有一個表staff
與office
列。目前office
列不接受NULL值。應用程序堅持到這張表上有一個錯誤,這意味着,當員工還沒有被分配到一個辦公室時,它會嘗試在表上插入一個NULL值。插入值之前的MySQL觸發器檢查
我被要求使用觸發器將插入截取到Staff
表中,並檢查office
值是否爲NULL,並將其替換爲值N/A
。
以下是我迄今的嘗試,但確實有error
試圖實現。任何關於如何解決這個問題的想法。
CREATE TRIGGER staffOfficeNullReplacerTrigger BEFORE INSERT ON Staff
FOR EACH ROW BEGIN
IF (NEW.office IS NULL)
INSERT INTO Staff SET office="N/A";
END IF
END;
錯誤:
MySQL Database Error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'INSERT INTO Staff SET office="N/A"; END'
爲什麼不改變架構,以便'NULL'的允許值?這正是「NULL」應該使用的地方,因爲它可以區分沒有辦公室和辦公室,而辦公室恰好具有「N/A」的值(而你的建議解決方案不會)。 – eggyal