2
我無法找到代碼中的哪個位置觸發了一個查詢,並且想知道是否有一個mysql配置在觸發時會拒絕該查詢?例如,在我的情況下,它是UPDATE table SET col1 = NULL, col2 = NULL, col3 = NULL
...請幫助!在mysql中拒絕某個查詢
我無法找到代碼中的哪個位置觸發了一個查詢,並且想知道是否有一個mysql配置在觸發時會拒絕該查詢?例如,在我的情況下,它是UPDATE table SET col1 = NULL, col2 = NULL, col3 = NULL
...請幫助!在mysql中拒絕某個查詢
如上所述,您可以使用trigger;只需調用一個不存在的過程來在滿足所需條件時產生錯誤。
DELIMITER ;;
CREATE TRIGGER reject_null_table_update BEFORE UPDATE ON table FOR EACH ROW
IF
NEW.col1 IS NULL
AND NEW.col2 IS NULL
AND NEW.col3 IS NULL
-- etc
THEN
CALL raise_error();
END IF;;
DELIMITER ;
抱歉愚蠢的問題,但我從來沒有在MySQL中使用觸發器...我可以在'raise_error()'中定製消息嗎? – eistrati 2012-04-24 16:04:49
你可以添加一個'BEFORE UPDATE' [觸發](http://dev.mysql.com/doc/refman/5.6/en/triggers.html)到你的'table',但實際上我覺得你應該追蹤'UPDATE'在你的代碼中的位置。 – eggyal 2012-04-24 15:48:17
只是要清楚,這不是我的代碼,它是一個噩夢追查:( – eistrati 2012-04-24 15:48:44
@eggyal:在這種情況下'BEFORE UPDATE'將如何看起來像? – eistrati 2012-04-24 15:51:49