从列中删除特定值
Delete specific values from column
我想从具有 WHERE
条件的一列中删除特定的 values/data。
Table CIVILITE
:
ID_CIVILITE CIV_LIBELLE
1 M.
2 Mme
3 Mlle
4 Aucun
DELETE FROM CIVILITE WHERE CIV_LIBELLE='Aucun';
错误:
The DELETE statement is in conflict with the constraint REFERENCE
"FK_PERS_CIVILITE". The conflict occurred in database "DBDB",
"dbo.PERSONNE" table, column 'ID_CIVILITE'.
如何在有约束的地方删除一些值..?
似乎 table CIVILITE 列 ID_CIVILITE 是主键,首先删除引用 table 中的相似行,即外键 table.
-- Run 1st
DELETE FROM [PERSONNE]
WHERE ID_CIVILITE IN
(SELECT CIVILITE WHERE CIV_LIBELLE='Aucun')
-- Run 2nd
DELETE CIVILITE WHERE CIV_LIBELLE='Aucun'
您收到此错误的原因是您试图删除被另一行引用的行,从而导致错误。因此,要么删除引用行,要么暂时删除约束。您需要先像这样更改 table:
ALTER TABLE [DBDB].[dbo].[PERSONNE] NOCHECK CONSTRAINT [FK_PERS_CIVILITE]
然后就可以删除记录了
确保在删除记录后再次应用约束。
ALTER TABLE [DBDB].[dbo].[PERSONNE] WITH CHECK CONSTRAINT [FK_PERS_CIVILITE]
要么你 DROP
constraint
,要么 - 可能更好 - 你更新 Personnes 中的数据,以便没有记录具有值 "Aucun"。如果允许,您可以将其设置为否 Null
。
你可能有一个像 PERSON
这样的 table,它有一个像这样的外键约束:
create table person (
-- various columns
civilite_id int,
foreign key component civilite_id references civilite(id_civilite)
);
并且这个 table 必须有一些 civilite_id = 4 的行。
您必须:
- 解除限制
- 删除包含此 civilite 的行
- 将行更新为空文明(如果可以的话)
- 将行更新为不同的文明
我想从具有 WHERE
条件的一列中删除特定的 values/data。
Table CIVILITE
:
ID_CIVILITE CIV_LIBELLE
1 M.
2 Mme
3 Mlle
4 Aucun
DELETE FROM CIVILITE WHERE CIV_LIBELLE='Aucun';
错误:
The DELETE statement is in conflict with the constraint REFERENCE "FK_PERS_CIVILITE". The conflict occurred in database "DBDB", "dbo.PERSONNE" table, column 'ID_CIVILITE'.
如何在有约束的地方删除一些值..?
似乎 table CIVILITE 列 ID_CIVILITE 是主键,首先删除引用 table 中的相似行,即外键 table.
-- Run 1st
DELETE FROM [PERSONNE]
WHERE ID_CIVILITE IN
(SELECT CIVILITE WHERE CIV_LIBELLE='Aucun')
-- Run 2nd
DELETE CIVILITE WHERE CIV_LIBELLE='Aucun'
您收到此错误的原因是您试图删除被另一行引用的行,从而导致错误。因此,要么删除引用行,要么暂时删除约束。您需要先像这样更改 table:
ALTER TABLE [DBDB].[dbo].[PERSONNE] NOCHECK CONSTRAINT [FK_PERS_CIVILITE]
然后就可以删除记录了
确保在删除记录后再次应用约束。
ALTER TABLE [DBDB].[dbo].[PERSONNE] WITH CHECK CONSTRAINT [FK_PERS_CIVILITE]
要么你 DROP
constraint
,要么 - 可能更好 - 你更新 Personnes 中的数据,以便没有记录具有值 "Aucun"。如果允许,您可以将其设置为否 Null
。
你可能有一个像 PERSON
这样的 table,它有一个像这样的外键约束:
create table person (
-- various columns
civilite_id int,
foreign key component civilite_id references civilite(id_civilite)
);
并且这个 table 必须有一些 civilite_id = 4 的行。
您必须:
- 解除限制
- 删除包含此 civilite 的行
- 将行更新为空文明(如果可以的话)
- 将行更新为不同的文明