mysql - 收到错误 1451 (23000) : Cannot delete or update a parent row: a foreign key constraint fails

标签 mysql sql-delete alter

我之前使用过以下代码来获得我想要的东西,但后来我添加了一些外键,它把它弄乱了:

DELETE FROM Faculty WHERE LastName LIKE 'Z%'

DELETE FROM Courses WHERE FirstYrOffered='1999'

我只是想从表中删除一个条目,但它无法正常工作。这就是我的表格的样子:

CREATE TABLE Faculty (
FacultyID int,
FirstName varchar(30),
LastName varchar(30),
EMail varchar(60),
BirthDate DATE,
Numbr_Courses int,
PRIMARY KEY (FacultyID)
);

CREATE TABLE Courses(
CourseID int,
CourseDisc varchar(4),
CourseNum varchar(4),
NumbrCred varchar(1),
FirstYrOffered int,
CourseTitle varchar(75),
PRIMARY KEY (CourseID)
);

CREATE TABLE Faculty_Courses(
InstanceID int,
FacultyID int,
CourseDisc varchar(4),
CourseID int,
CourseNum varchar(4),
CourseTitle varchar(75),
PRIMARY KEY (InstanceID),
FOREIGN KEY (FacultyID) REFERENCES Faculty(FacultyID),
FOREIGN KEY (CourseID) REFERENCES Courses(CourseID)
);

我已经查找了 ALTER TABLE 代码示例,但并不真正理解我正在用它做什么。任何帮助将不胜感激。

最佳答案

首先,您必须从Faculty_Courses中删除相应的记录,然后从教师和类(class)表中删除记录。或者,设置 on delete cascade option在外键上。

关于mysql - 收到错误 1451 (23000) : Cannot delete or update a parent row: a foreign key constraint fails,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35528470/

相关文章:

mysql - 为什么额外的是 "using where;using index"而不是 "using index"

mysql - 如何获取mysql中列中所有使用的值?

php - 只保存10条记录,但按ID删除所有其他记录 庞大的数据库

mysql - 导入和覆盖 MySQL 中的现有数据

php - 从表中删除不会删除行

sql - 通过单个请求删除 ActiveRecord 关联

mysql - Sequelize - Mysql foreignKey ADD CONSTRAINT 因 ALTER TABLE 而失败

mysql - 更改 MySQL 范围分区子句

php - 将列添加到表并将该列的所有行的值设置为指定值

mysql建表查询问题?