【发布时间】:2021-03-12 17:07:14
【问题描述】:
我很难在 maria db 中使用外键创建表,但我无法弄清楚。
我收到这条消息:“无法创建表 evanightdb.events_liked (errno: 150 "外键约束格式不正确")”。
我尝试创建的表:
CREATE TABLE events_liked (
id INT NOT NULL AUTO_INCREMENT,
id_events int(11),
title_event text,
event_liked int NOT NULL,
PRIMARY KEY ID,
FOREIGN KEY (id_events) REFERENCES event_details(`id`),
FOREIGN KEY (title_event) REFERENCES event_details(`title`)
)
这是“event_details”表。
CREATE TABLE `event_details` (
`id` int(11) NOT NULL,
`event_url` varchar(300) NOT NULL,
`url` varchar(300) NOT NULL,
`title` text NOT NULL,
`description` text DEFAULT NULL,
`event_image_url` text DEFAULT NULL,
`image_path` text DEFAULT NULL,
`address_1` text DEFAULT NULL,
`address_2` text DEFAULT NULL,
`latitude` decimal(10,8) DEFAULT NULL,
`longitude` decimal(10,8) DEFAULT NULL,
`event_by` text DEFAULT NULL,
`genre` varchar(255) DEFAULT NULL,
`start_time` timestamp NULL DEFAULT NULL,
`start_time_not_parsed` datetime DEFAULT NULL,
`end_time` timestamp NULL DEFAULT NULL,
`duration` time DEFAULT NULL,
`ticket` text DEFAULT NULL,
`check_address` varchar(255) DEFAULT NULL,
`going` text DEFAULT NULL,
`interested` text DEFAULT NULL,
`createdAt` timestamp NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(),
PRIMARY KEY (`id`),
UNIQUE KEY `url` (`url`);
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
【问题讨论】:
-
您是否尝试在
event_details存在之前创建events_liked? -
我还注意到
event_details在其id列上没有 PRIMARY KEY 约束。你需要那个。 -
你不能在
TEXT列上创建外键。 -
您可能想阅读这份外键要求清单:stackoverflow.com/a/4673775/20860
标签: mysql mariadb foreign-keys