【发布时间】:2022-01-16 14:13:40
【问题描述】:
我在“竞争”表中不断收到关于我的外键的错误。我一直在尝试查找问题所在,但这些示例似乎都不是我的问题。谁能帮我吗?这是我不断收到的错误:
ERROR 1005 (HY000): Can't create table `database`.`compete` (errno: 150 "Foreign key constraint is incorrectly formed")
这是我的代码。
CREATE TABLE athlete (
athlete_id INT UNSIGNED NOT NULL AUTO_INCREMENT,
country TINYTEXT NOT NULL,
name TINYTEXT NOT NULL,
birthdate DATE NOT NULL,
age INT UNSIGNED NOT NULL,
height_inch INT UNSIGNED,
weight_lbs INT UNSIGNED,
PRIMARY KEY (athlete_id)
);
CREATE TABLE sport (
sport_id INT UNSIGNED NOT NULL,
sport TINYTEXT NOT NULL,
PRIMARY KEY (sport_id)
);
CREATE TABLE olympics (
olympics_id INT UNSIGNED NOT NULL,
season TINYTEXT NOT NULL,
year YEAR NOT NULL,
city TINYTEXT NOT NULL,
PRIMARY KEY (olympics_id)
);
CREATE TABLE sport_events (
sport_id INT UNSIGNED NOT NULL,
event_id INT UNSIGNED NOT NULL,
event TINYTEXT NOT NULL,
PRIMARY KEY (sport_id, event_id),
FOREIGN KEY (sport_id) REFERENCES sport (sport_id)
);
CREATE TABLE athlete_sport (
athlete_id INT UNSIGNED NOT NULL AUTO_INCREMENT,
sport_id INT UNSIGNED NOT NULL,
PRIMARY KEY (athlete_id),
FOREIGN KEY (athlete_id) REFERENCES athlete (athlete_id),
FOREIGN KEY (sport_id) REFERENCES sport (sport_id)
);
CREATE TABLE compete (
athlete_id INT UNSIGNED NOT NULL AUTO_INCREMENT,
olympics_id INT UNSIGNED NOT NULL,
event_id INT UNSIGNED NOT NULL,
medal TINYTEXT,
PRIMARY KEY (athlete_id),
FOREIGN KEY (athlete_id) REFERENCES athlete (athlete_id),
FOREIGN KEY (olympics_id) REFERENCES olympics (olympics_id),
FOREIGN KEY (event_id) REFERENCES sport_events (event_id)
);
【问题讨论】:
标签: mysql mariadb foreign-keys schema