【发布时间】:2021-06-22 03:10:24
【问题描述】:
我正在尝试为数据库创建一些表,但是出现以下错误。如果我删除了演员表的 middle_name 和 last_name 字段,则会创建该表,但下一个表会出现相同的错误。
语法错误到底在哪里?
mysql.connector.errors.ProgrammingError: 1064 (42000): 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 'middle_name VARCHAR(20)
last_name VARCHAR(20) NOT NULL
PRIMARY K' at line 3
tables = ["""
CREATE TABLE IF NOT EXISTS tag (
name VARCHAR(20) NOT NULL PRIMARY KEY
);
""", """
CREATE TABLE IF NOT EXISTS genre (
name VARCHAR(20) NOT NULL PRIMARY KEY
);
""", """
CREATE TABLE IF NOT EXISTS actor (
first_name VARCHAR(20) NOT NULL
middle_name VARCHAR(20)
last_name VARCHAR(20) NOT NULL
PRIMARY KEY(first_name, last_name)
);
""", """
CREATE TABLE IF NOT EXISTS show_tag (
id INT NOT NULL AUTO_INCREMENT PRIMARY KEY
tag_name VARCHAR(20) NOT NULL
show_title VARCHAR(20) NOT NULL
FOREIGN KEY tag_name REFERENCES tag(name)
FOREIGN KEY show_title REFERENCES show(title)
);
""", """
CREATE TABLE IF NOT EXISTS show_genre (
id INT NOT NULL AUTO_INCREMENT PRIMARY KEY
genre_name VARCHAR(20) NOT NULL
show_title VARCHAR(20) NOT NULL
FOREIGN KEY genre_name REFERENCES genre(name)
FOREIGN KEY show_title REFERENCES show(title)
);
""", """
CREATE TABLE IF NOT EXISTS show_actor (
id INT NOT NULL AUTO_INCREMENT PRIMARY KEY
actor_fn VARCHAR(20) NOT NULL
actor_ln VARCHAR(20) NOT NULL
show_title VARCHAR(20) NOT NULL
FOREIGN KEY (actor_fn, actor_ln) REFERENCES actor(fn, ln)
FOREIGN KEY (show_title) REFERENCES show(title)
);
""",
"""
CREATE TABLE IF NOT EXISTS show (
title VARCHAR(20) NOT NULL PRIMARY KEY
view_rating VARCHAR(8)
release_date DATE
summary TEXT
score DECIMAL(2, 1)
);
"""]
【问题讨论】:
-
使用逗号,,,,,,,,,,,,
-
CREatE TABLE的 MySQL 引用是 here。仔细检查这些陈述。
标签: mysql create-table mysql-error-1064