py mysql - ИНОСТРАННЫЙ КЛЮЧ СОЗДАТЬ ТАБЛИЦУ - PullRequest
0 голосов
/ 10 апреля 2020

Привет. Я пытаюсь вставить внешний ключ, когда создаю таблицу в py mysql, но получаю ошибку. Это мой код:

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)''') 

Ответы [ 2 ]

0 голосов
/ 10 апреля 2020

для столбца имени и полного имени вы должны добавить размер как varchar(10) или что-то еще. и другая ошибка: вы пытаетесь использовать идентификатор в качестве первичного и внешнего ключа в таблице исполнителей, для чего обратитесь к этому вопросу stackoverflow

0 голосов
/ 10 апреля 2020

Предполагая, что один исполнитель может быть автором многих песен, тогда все должно быть наоборот: внешний ключ должен быть определен в таблице Song и ссылаться на таблицу Artist.

...