1

我在 Mysql5.0.51b 中导入 Sakila 数据库时遇到问题。具体问题出在“DELIMITER SYNTAX”中,我尝试了一些替代方法,但没有奏效。

我使用 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 ; 
4

1 回答 1

1

我不熟悉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,我已经证明这没有问题。

于 2012-07-21T05:12:50.953 回答