用pymysql操作数据库执行删除数据操作时报错:
'Cannot delete or update a parent row: a foreign key constraint fails (library
.web_borrow
, CONSTRAINT web_borrow_user_id_fcae516a_fk_web_student_student_id
FOREIGN KEY (user_id
) REFERENCES web_student
(student_id
))')
我的外键所在的表里写了on_delete=models.CASCADE为什么还不行?
望采纳。你的数据库中存在一个外键约束,它阻止了你的删除操作。
你正在尝试删除 web_borrow 表中的一行,但是在 web_student 表中,这一行被引用了,并且在 web_borrow 表中定义了一个外键,约束了 user_id 列必须引用 web_student 表中的 student_id 列。
要解决这个问题,需要首先删除所有引用了要删除的行的外键,然后才能成功删除这一行。先删除所有在 web_student 表中引用了要删除的行的行,然后才能删除要删除的行。
可以使用 ON DELETE CASCADE 语句来实现这一点。这样,当您删除一个行时,所有引用了这一行的外键也会被自动删除。例如:
ALTER TABLE web_borrow
ADD CONSTRAINT web_borrow_user_id_fcae516a_fk_web_student_student_id
FOREIGN KEY (user_id) REFERENCES web_student (student_id)
ON DELETE CASCADE;