2012-04-24 2 views
2

코드에서 쿼리가 트리거되는 위치를 찾을 수없고 트리거되었을 때 해당 쿼리를 거부 할 mysql 구성이 있는지 궁금해하고 있습니까? 예를 들어, 내 상황은 UPDATE table SET col1 = NULL, col2 = NULL, col3 = NULL ... 제발 도와주세요!mysql에서 특정 쿼리 거부

+2

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 ; 
는'UPDATE' [트리거] (http://dev.mysql.com/doc/refman/5.6/en/triggers.html) 귀하의'table'에,하지만 그 전에 정말 내가 생각 당신은 당신의 코드에서'UPDATE'가 어디에 있는지 추적해야합니다. – eggyal

+0

내 코드가 아니며 그것을 추적하는 것은 악몽이다. ( – eistrati

+0

@eggyal :이 상황에서 어떻게 "BEFORE UPDATE"가 어떻게 생겼을 까? – eistrati

답변

5

위에서 언급 한 것처럼 trigger을 사용할 수 있습니다. 원하는 기준이 충족 될 때 존재하지 않는 프로 시저를 호출하여 오류를 발생 시키십시오.

당신은 추가 할 수
+0

미안하지만 어리석은 질문은 있지만 MySQL에서는 트리거를 사용하지 않았다. ...'raise_error()'에서 메시지를 커스터마이징 할 수 있습니까? – eistrati

관련 문제