2014-12-09 3 views
0

나는 다음의 구문 오류를 해결하기 위해 시도했지만 나는 도대체 것은 잘못 여기에 볼 수 없습니다 :MYSQL 구문 구분 기호 및 구문 오류

DELIMITER = 
CREATE TRIGGER trigs BEFORE UPDATE ON autoinc 
FOR EACH ROW BEGIN 
DECLARE num_rows INTEGER; 
SELECT (*) INTO num_rows FROM autoinc; 
IF num_rows >=3 THEN 
DELETE FROM autoinc LIMIT 1; 
END IF; 
END= 
DELIMITER ; 

오류는 다음과 같습니다

ERROR 1064 (42000): 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 '*) INTO num_rows FROM autoinc; IF num_rows >' at line 4 

ERROR 1064 (42000): 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 '3 THEN 

이 문제를 해결하는 데 도움이 될 수 있습니까?

+3

'SELECT 구문 오류없이 작동이 두 가지 변화와 코드 발생하지 않습니다 구분, 예컨대 :

DELIMITER // 

를 사용? 'SELECT count (*)'가 ​​아니어야합니다. –

+0

고맙습니다. 고쳐 주시 겠지만 - 이제는 제가 비교할 때보다 크거나 같은 것을 할 수 없습니까? – user1658296

+0

'DELETE FROM autoinc LIMIT 1; '작동하지 않습니다. 트리거가 실행중인 동일한 테이블에서 삽입/업데이트/삭제를 수행 할 수 없습니다. –

답변

2

으로 이미 코멘트에 언급 :

SELECT (*) AS num_rows ... 

아마

SELECT COUNT(*) AS num_rows ... 

될 운명이되었다 그리고 당신과

IF num_rows >=3 THEN 

나누기 구분 기호로 =을 정의했다.

는`일이 (*)