2014-01-14 2 views
0

을 처리하지 :phpMyAdmin을 내가 현재 가지고 트리거

delimiter // 

CREATE TRIGGER blog_creator AFTER INSERT ON news 

IF (EXISTS(SELECT * FROM news WHERE headline = 'LastItem' 
THEN 
INSERT INTO `blog` (`id`, `title`, `content`) VALUES (500, 'Hi', 'An item was posted!'); 

delimiter ; 

phpMyAdmin을이를 따기되지 않습니다. 오류 메시지가 없으며 로딩 기호 만 표시됩니다. SHOW TRIGGERS는 아무것도 표시하지 않으며 뉴스에 삽입해도 아무 것도하지 않습니다. 내가 도대체 ​​뭘 잘못하고있는 겁니까?

답변

2

누락 된 항목이 거의 없습니다. 이 시도 :

delimiter // 

CREATE TRIGGER blog_creator AFTER INSERT ON news 
FOR EACH ROW --always add this line 
BEGIN -- start code block 
    -- I think it would be faster to do the count instead of exists 
    IF ((SELECT COUNT(*) FROM news WHERE headline = 'LastItem') > 0) 
    THEN 
    INSERT INTO `blog` (`id`, `title`, `content`) VALUES (500, 'Hi', 'An item was posted!'); 
    END IF; --you need to end if 
END// --you need to end trigger using the new delimiter 

delimiter ; 

는 현재 SQLFiddle을 시도 할 수 있습니다 :

어떤 이유

http://sqlfiddle.com/#!2/524b4/1

+0

는, phpMyAdmin을가로드되는 것을 보여줍니다, 아무 것도하지 않습니다. 확인 또는 오류 메시지가 없습니다. 다른 SQL 쿼리는 정상적으로 작동합니다. 지금까지 시도해 줘서 고마워. – ohyeah

+0

이 코드는 실제로 작동해야합니다. 나는 phpMyAdmin에서 저장 프로 시저 및 트리거를 사용하여 과거에 몇 가지 문제가있었습니다. 내 솔루션은 MySQL 워크 벤치로 전환했다 :) – Zagor23

+0

어떤 phpMyAdmin 버전? –