我收到了错误
DELETE语句与REFERENCE约束FK_DocYDocument1冲突 - 表DocYDocument,列SubDocID - 语句:DELETE FROM DOCUMENT WHERE(ID =?)参数:'D7FAA3CF ...'
表DocYDocument包含列
PK ID, FK DocID and FK SubDocID.
And the keys PK_DocYDocument, FK_DocYDocument and FK_DocYDocument1.
Run Code Online (Sandbox Code Playgroud)
FK_DocYDocument1外键列是SubDocID,FK_DocYDocument外键列是DocID.
数据库设计有问题还是我要在程序中查找错误?
您有行DocYDocument指的是DOCUMENT您要删除的行.
您必须从DocYDocument匹配中删除行DocID
DELETE FROM DocYDocument WHERE DocID = ?
DELETE FROM DOCUMENT WHERE ID = ?
Run Code Online (Sandbox Code Playgroud)
或更改约束以自动执行此操作
ALTER TABLE DocYDocument
DROP CONTRAINT FK_DocYDocument;
ALTER TABLE DocYDocument
ADD CONSTRAINT FK_DocYDocument
FOREIGN KEY ( DocID )
REFERENCES DOCUMENT ( ID )
ON DELETE CASCADE;
Run Code Online (Sandbox Code Playgroud)
如果DocID你可以ON DELETE SET NULL,如果可以为空,你可以做.