关于#mysql,python#的问题,如何解决?

用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;