2012-07-21 36 views
0

我有一個問題導入Mysql5.0.51b中的Sakila數據庫。 具體的問題是'DELIMITER語法',我嘗試了一些替代品,但沒有奏效。Sakila Schema沒有導入到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 ;; 
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我已經證明這沒有問題。