MySQL 觸發器根據欄位ID 更新欄位
決定是否可以利用觸發器自動將欄位的值設為其ID需要多方面的探索。
觸發器定義
根據條件在插入之前更新欄位的觸發器的MySQL 語法如下:
CREATE TRIGGER trigger_name BEFORE INSERT ON table_name FOR EACH ROW BEGIN IF NEW.group_id IS NULL THEN SET NEW.group_id = NEW.id; END IF; END;
觸發器限制
但是,這種方法面臨限制。在 BEFORE INSERT 階段,ID 值尚未可用,因此如果 group_id 為 NULL,則預設為 0。
在AFTER INSERT 階段不允許修改列內的值,因此不符合此條件
替代解決方案
到期由於MySQL的限制,純粹的觸發器解決方案是不可行的。相反,可以採用涉及插入和立即更新的組合方法:
此方法可確保在兩種情況下正確設定 group_id 欄位:指定時和省略時。
以上是MySQL觸發器可以自動將欄位的值設為其ID嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!