2012-07-21 2 views
0

Mysql5.0.51b에서 Sakila 데이터베이스를 가져 오는 데 문제가 있습니다. 특정 문제는 'DELIMITER SYNTAX'에 있습니다. 몇 가지 대안을 시도했지만 작동하지 않았습니다.Sakila 스키마를 MySQL에 가져 오지 않았습니다.

나는 APPServr을 사용합니다.

MYSQL 메시지 오류 :

-- 
-- Triggers for loading film_text from film 
-- 
DELIMITER; 


MySQL said: 

#1064 - 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 
'DELIMITER' at line 1 

DELIMITER 코드 :

DELIMITER ;; 
CREATE TRIGGER `ins_film` AFTER INSERT ON `film` FOR EACH ROW BEGIN 
    INSERT INTO film_text (film_id, title, description) 
     VALUES (new.film_id, new.title, new.description); 
    END;; 


CREATE TRIGGER `upd_film` AFTER UPDATE ON `film` FOR EACH ROW BEGIN 
    IF (old.title != new.title) OR (old.description != new.description) OR (old.film_id != new.film_id) 
    THEN 
     UPDATE film_text 
      SET title=new.title, 
       description=new.description, 
       film_id=new.film_id 
     WHERE film_id=old.film_id; 
    END IF; 
    END;; 


CREATE TRIGGER `del_film` AFTER DELETE ON `film` FOR EACH ROW BEGIN 
    DELETE FROM film_text WHERE film_id = old.film_id; 
    END;; 

DELIMITER ; 

답변

0

내가 APPServr에 익숙하지 않은 오전이가 아니다 (MySQL로를 통해 전송하기 전에 몇 가지 명령을 왜곡하고 그것을 의심 것 고발, 단지 의혹).

교실에서 sakila 데이터베이스를 여러 번 성공적으로 가져 왔습니다. 가장 좋은 방법은, 내 의견으로는 mysql 명령 행 클라이언트에서 SOURCE을 간단하게하는 것입니다

mysql> SOURCE /path/to/sakila-schema.sql 
mysql> SOURCE /path/to/sakila-data.sql 

그렇지 않으면 당신 쉘에서 명령 줄을 통해 가져올 수 있습니다/명령 : 또한

bash$ mysql < /path/to/sakila-schema.sql 
bash$ mysql < /path/to/sakila-data.sql 

그리고, 사용 MySQL Workbench 나는 이것으로 아무 문제도 증명하지 못했다.

관련 문제