mysql - ERROR 1451 无法从父表中删除记录
问题描述
嘿伙计们,我想删除一条记录。但是由于外键约束不允许我
我试图执行的操作是(所有卡号都是假的)
DELETE FROM payment_method
WHERE card_no = 42218345;
表结构:
CREATE TABLE payment_details (
card_no int(8) NOT NULL,
customer_id int(50) NOT NULL AUTO_INCREMENT,
CVV int(3) NOT NULL,
card_type ENUM ('Visa', 'Amex', 'American Express', 'Mastercard') NOT NULL,
expiry_date DATE NOT NULL,
PRIMARY KEY(card_no),
KEY customer_idfk1 (customer_id),
CONSTRAINT customer_idfk1 FOREIGN KEY (customer_id) REFERENCES customers (customer_id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
和
CREATE TABLE customers (
customer_id int(50) NOT NULL AUTO_INCREMENT,
fname varchar(20) NOT NULL,
lname varchar(20) NOT NULL,
dateOfBirth date NOT NULL,
address varchar(30) NOT NULL,
city varchar(20) NOT NULL,
county ENUM('Armagh','Carlow','Cavan','Clare','Cork','Derry','Donegal','Down','Dublin','Fermanagh','Galway','Kerry','Kildare','Kilkenny','Laois','Leitrim','Limerick','Longford','Louth','Mayo','Meath','Monaghan','Offaly','Roscommon','Sligo','Tipperary','Tyrone','Waterford','Westmeath','Wexford','Wicklow') NOT NULL,
phone int(10) NOT NULL,
email varchar(20) NOT NULL,
payment_method ENUM ('Visa', 'Amex', 'Cash', 'American Express', 'Mastercard') NOT NULL,
valid_licence varchar(5) NOT NULL,
status varchar(10),
PRIMARY KEY (customer_id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
错误是:
1451 - 无法删除或更新父行:外键约束失败(
g00337857abu
.payment_details
, CONSTRAINTcustomer_idfk1
外键 (
customer_id
) 参考customers
(customer_id
))
有谁知道为什么它不允许我删除这条记录..
我发现了第一个错误
现在我试图从客户表中删除
DELETE FROM customers
WHERE customer_id = 1
错误 - #1451 - 无法删除或更新父行:外键约束失败 (
g00337857abu
.payment_details
, CONSTRAINTcustomer_idfk1
FOREIGN KEY (customer_id
) REFERENCEScustomers
(customer_id
))
解决方案
推荐阅读
- javascript - React Context 和 hookrouter 不会在组件挂载时重定向
- r - 字符串拆分的模式如何成为子字符串本身?
- c++ - 如何将 long int 传递给 itoa 函数?
- python - Python`assert`函数ValueError:具有多个元素的数组的真值不明确。使用 a.any() 或 a.all()
- r - retrieve original file name of loaded data object in R
- excel - Excel VBA代码在隐藏之前获取列的原始宽度
- wordpress - 用自定义帖子类型内的自定义分类法上的下拉选择器替换层次复选框
- github - 如何在 Github Actions 中获取当前分支?
- c - 是否有可能找到不适合 %.6g 的浮点数
- dependencies - 在 Android Pie 之后迁移到 AndroidX for Wear 支持库?