MySQL (5.1) 트리거를 만들 때 문제가 발생하며 여기에서 잘못된 것을 실제로 볼 수 없습니다.트리거에서 구문 오류가 발생했습니다.
DELIMITER //
CREATE TRIGGER CheckSoftware BEFORE INSERT ON Software
FOR EACH ROW BEGIN
-- Uppercase the first letter
SET NEW.name = CONCAT(UPPER(SUBSTRING(NEW.name, 1, 1)), SUBSTRING(NEW.name, 2));
-- If price isn't round
IF NEW.price != TRUNCATE(NEW.price) THEN
IF NEW.price - TRUNCATE(NEW.price) <= 0.49 THEN
-- Sets it to xx.49
SET NEW.price = TRUNCATE(NEW.price) + 0.49;
ELSIF (NEW.price - TRUNCATE(NEW.price)) <= 0.99 THEN
-- Sets it to xx.99
SET NEW.price = TRUNCATE(NEW.price) + 0.99;
END IF;
END IF;
END;
//
DELIMITER ;
내 얼굴에 어떤 MySQL을 던졌습니다 : 여기 코드는
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 ') THEN
IF NEW.price - TRUNCATE(NEW.price) <= 0.49 THEN
' at line 7
덕분에 많은 그것을보고를 위해!
'TRUNCATE'는 테이블을 비우기 위해 사용되는 것이 아니라 MySQL에서 유효한 함수 이름입니까? –
그래, 나는 그것을 MySQL 문서에서 발견하고 그것을 테스트했다. 또한 TRUNCATE()에 대한 첫 번째 호출은 문제를 일으키지 않습니다. 두 번째 호출을 ROUND()와 같은 다른 함수로 대체하려고 시도했지만 여전히 동일한 오류가 발생했습니다. – ksol