2012-07-21 40 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我已经证明这没有问题。