我想从WHERE
条件的一列中删除特定值/数据。
表CIVILITE
:
ID_CIVILITE CIV_LIBELLE
1 M.
2 Mme
3 Mlle
4 Aucun
DELETE FROM CIVILITE WHERE CIV_LIBELLE='Aucun';
错误:
DELETE语句与约束REFERENCE冲突 “FK_PERS_CIVILITE”。冲突发生在数据库“DBDB”中, “dbo.PERSONNE”表,列'ID_CIVILITE'。
如何在有约束的情况下删除某些值。?
答案 0 :(得分:2)
您收到此错误的原因是您尝试删除另一行引用的行,从而导致错误。因此,要么删除引用行,要么暂时删除约束。你需要先改变你的表格如下:
ALTER TABLE [DBDB].[dbo].[PERSONNE] NOCHECK CONSTRAINT [FK_PERS_CIVILITE]
然后你可以删除记录。
确保删除记录后再次应用约束。
ALTER TABLE [DBDB].[dbo].[PERSONNE] WITH CHECK CONSTRAINT [FK_PERS_CIVILITE]
答案 1 :(得分:1)
似乎表CIVILITE列ID_CIVILITE是主键,首先删除引用表中的类似行,即外键表。
-- Run 1st
DELETE FROM [PERSONNE]
WHERE ID_CIVILITE IN
(SELECT CIVILITE WHERE CIV_LIBELLE='Aucun')
-- Run 2nd
DELETE CIVILITE WHERE CIV_LIBELLE='Aucun'
答案 2 :(得分:1)
要么DROP
constraint
,要么更好 - 您更新Personnes中的数据,以便没有记录具有值“Aucun”。如果允许,您可以将其设置为Null
。
答案 3 :(得分:1)
您可能有一个像// process the data so the average and number of elements are visible to each bar
var data = allrankings.map(function(rankings){
var avg;
avg = rankings.reduce(function(a,b){ return a+b; })/rankings.length;
return rankings.map(function(d){
return {val: d, avg: avg, numBars: rankings.length};
});
});
var barGroups = svg.selectAll(".bar-groups")
.data(data)
.enter()
.append("g")
.attr("transform", function(d, i){
return "translate("+ i*20 + ",0)"; // may want to use scales
})
.classed("bar-groups",true);
var bars = barGroups
.selectAll(".bars")
.data(function(d){
return d; // returns a one dimensional array of objects
})
.enter()
.append("rect");
这样的表,它有一个外键约束,如:
bars.attr("height", function(d){ return d.avg/d.numBars; });
并且此表必须包含一些具有civilite_id = 4的行。
您必须: