创建外键约束时出现语法错误
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")
我想使用约束关键字来命名外键。
请帮忙。谢谢!
你有两个问题:
- 两列的数据类型不同。外键列和引用列必须具有相同的类型和长度。
- 您尝试使用的列不是主键,因此您不能在外键中使用它。
当这两个问题解决后,外键将成功创建,请参见此处的示例:db<>fiddle
下面是使用 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")
我想使用约束关键字来命名外键。
请帮忙。谢谢!
你有两个问题:
- 两列的数据类型不同。外键列和引用列必须具有相同的类型和长度。
- 您尝试使用的列不是主键,因此您不能在外键中使用它。
当这两个问题解决后,外键将成功创建,请参见此处的示例:db<>fiddle