微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

无法使用外键 Maria DB 创建表

如何解决无法使用外键 Maria DB 创建表

我很难用外键在 maria db 中创建表,但我无法弄清楚。 我收到了这条消息:“无法创建表 evanightdbevents_liked错误号: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,`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;

解决方法

在 MariaDB 中

TEXTBLOB 列不能用作外键

Knowledge Base » MariaDB Server Documentation » High Availability & Performance Tuning » Optimization and Tuning » Optimization and Indexes » Foreign Keys


可能的解决方案1:添加VARCHAR(xxx)数据类型的生成列,该列分配有TEXT列的前缀,然后将其用于FK。

可能的解决方案 2:添加正确数据类型的生成列,该列分配有 TEXT 列的一些散列,然后将其用于 FK。

两种解决方案都假设在两个表中都创建了生成的列。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。