创建外键约束时出现语法错误

Syntax Error while creating a Foreign Key Constraint

下面是使用 MariaDB 10.5.13 创建外键约束的代码

create table a 
(

    id int primary key,
    name enum ("rajiv","harish","girish")
);

create table b
(
    id int primary key,
    givenName char(100),
    constraint gName
    foreign key(givenName) 
    references a (name)
    on delete cascade
    on update cascade
)




  Error Message:  SQL Error [1005] [HY000]: (conn=7) Can't create table `srkbs`.`b` (errno: 150 "Foreign key constraint is incorrectly formed")

我想使用约束关键字来命名外键。

请帮忙。谢谢!

你有两个问题:

  1. 两列的数据类型不同。外键列和引用列必须具有相同的类型和长度。
  2. 您尝试使用的列不是主键,因此您不能在外键中使用它。

当这两个问题解决后,外键将成功创建,请参见此处的示例:db<>fiddle