pymysql - 创建外键 TABLE
pymysql - FOREIGN KEY CREATE TABLE
您好,我在 pymysql 中创建 table 时尝试插入外键,但出现错误。这是我的代码:
cur.execute('''CREATE TABLE IF NOT EXISTS artist(id int PRIMARY KEY NOT NULL AUTO_INCREMENT, full_name varchar,
FOREIGN KEY (id) REFERENCES song(artist_id))''')
cur.execute('''CREATE TABLE IF NOT EXISTS Song(id int PRIMARY KEY NOT NULL AUTO_INCREMENT, name varchar,
artist_id int, entry_date timestamp, entry_position int)''')
假设一个艺术家可以是多首歌曲的作者,那么这应该是相反的:外键必须在歌曲 table 上定义并引用艺术家 table。
对于名称和全名列,您应该将大小添加为 varchar(10)
或其他内容。
另一个错误是您尝试将 id 用作艺术家 table 中的主键和外键
为此,请参阅此 Whosebug question
您好,我在 pymysql 中创建 table 时尝试插入外键,但出现错误。这是我的代码:
cur.execute('''CREATE TABLE IF NOT EXISTS artist(id int PRIMARY KEY NOT NULL AUTO_INCREMENT, full_name varchar,
FOREIGN KEY (id) REFERENCES song(artist_id))''')
cur.execute('''CREATE TABLE IF NOT EXISTS Song(id int PRIMARY KEY NOT NULL AUTO_INCREMENT, name varchar,
artist_id int, entry_date timestamp, entry_position int)''')
假设一个艺术家可以是多首歌曲的作者,那么这应该是相反的:外键必须在歌曲 table 上定义并引用艺术家 table。
对于名称和全名列,您应该将大小添加为 varchar(10)
或其他内容。
另一个错误是您尝试将 id 用作艺术家 table 中的主键和外键
为此,请参阅此 Whosebug question