我有一个包含外键的关系表,其中没有“on delete cascade”属性集。现在我想删除一个特定的记录,但我无法做到!
当我尝试从引用的关系中删除记录时,它会给出错误“删除语句与外键约束冲突。”
当我尝试从引用关系中删除记录时,它会给出相同的错误。
即使我现在也无法更改数据库架构。任何出路?
更新 关系模式
Customer(c_id,c_name);
Products(p_id,p_name,p_cost);
purchases(p_id references Products,c_id references Customr);
我想删除purchases
关系中的元组。
更新:删除声明
该表已包含以下数据:
c_id p_id
1 4
1 3
1 2
1 1
2 3
1 4(注意重复元组)
现在我想删除此行上方的记录。即重复记录。 我只是右键单击管理工作室中表格视图中显示的元组,然后点击删除键。它给出了错误。
更新
我用过
delete from Purchases where c_id=1 and p_id=4
一切都很好!!!
最初我曾经通过在表格视图中选择记录并按下删除键来删除。现在它奏效了。任何人都可以解释一下有什么区别吗?
答案 0 :(得分:0)
您可能正在使用SQL Server Management Studio中的“编辑顶部X记录”界面来删除记录。此功能要求您在表上定义主键,因为它需要能够唯一标识您要删除的行。它不能直接从表中删除行,它只是为您在后台构造SQL。您是否在表格中定义了主键?