【问题标题】:Can't create table with foreign key Maria DB无法使用外键 Mariadb 创建表
【发布时间】: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;

【问题讨论】:

标签: mysql mariadb foreign-keys


【解决方案1】:

在 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。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-24
    • 2014-01-05
    • 2017-01-02
    • 2019-04-28
    • 1970-01-01
    相关资源
    最近更新 更多