我在Mysql5.0.51b中导入Sakila数据库时遇到问题。 具体问题出现在'DELIMITER SYNTAX'中,我尝试了一些替代方案,但没有用。
我使用APPServr。
MYSQL MESSAGE ERROR:
--
-- 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 CODE:
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 :(得分:0)
我不熟悉APPServr
,并且怀疑它在发送到MySQL之前扭曲了一些命令(这不是指控,只是怀疑)。
我已成功在教室中多次导入sakila
数据库。在我看来,最好的方法是从SOURCE
命令行客户端简单地mysql
:
mysql> SOURCE /path/to/sakila-schema.sql
mysql> SOURCE /path/to/sakila-data.sql
否则,您可以通过命令行从shell / Command导入:
bash$ mysql < /path/to/sakila-schema.sql
bash$ mysql < /path/to/sakila-data.sql
而且,使用MySQL Workbench我已经证明没有问题。