如何解决mysql.connector.errors.ProgrammingError: 1064 (42000);创建表
我正在尝试为数据库创建一些表,但是出现以下错误。如果我删除 actor 表的 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 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)
);
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。