我在MySQL中创建了一个包含两个表的数据库。代码如下:
create table user_information (
Login_id varchar(50),
User_id varchar(50),
Surname varchar(50),
forename varchar(50),
title varchar(
position varchar(50),
phone varchar(25),
email varchar(25),
location varchar(25)
);
个字符
我还在下面的代码中添加了外键:
alter table email
add constraint fk_User_id
FOREIGN KEY(User_id) REFERENCES user_information(User_id);
型
我面临的问题
我遇到的问题是,当我试图删除电子邮件表中的一个字段,以查看外键约束是否有效,但约束不起作用。
错误代码1451:无法删除或更新父行
我试着查看外键的创建,看看是否有任何错误,但据我所知,我找不到任何错误。
我还试图删除电子邮件表中的数据,并再次插入数据,看看这是否有很大的不同,但不幸的是没有。
1条答案
按热度按时间e5nszbig1#
为什么不工作:
add constraint
中指定任何ON DELETE
,尽管mysql分配了默认值如何解决:
创建表email(User_id varchar(50)NOT NULL PRIMARY KEY,email varchar(50)null);
ON DELETE RESTRICT
它将显示[23000][1451] Cannot delete or update a parent row
,而试图删除行形式的父(电子邮件)表中有外键的用户信息表ALTER TABLE user_information ADD CONSTRAINT fk_tblEmail_User_id FOREIGN KEY(User_id)REFERENCES email(User_id)ON EMAIL RESTRICT;
请看附件屏幕截图
x1c 0d1x的数据