【问题标题】:INSERT statement conflicted with the FOREIGN KEY constraint - SQL Server 2016INSERT 语句与 FOREIGN KEY 约束冲突 - SQL Server 2016
【发布时间】:2021-01-08 21:44:36
【问题描述】:

我有一个问题,我执行插入选择表并向我显示错误:

(Msg 547, Level 16, State 0, Line 4 INSERT 语句冲突 具有 FOREIGN KEY 约束“FK_art_sub_lin”。冲突 发生在数据库“A_DEBQ_A”、表“dbo.sub_lin”中。该声明 已终止。)

但是表dbo.sub_lin PK时有2个字段,示例:

 CONSTRAINT [sub_lin_co_subl] PRIMARY KEY CLUSTERED 
(
    [co_subl] ASC,
    [co_lin] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]

餐桌艺术有:

(ALTER TABLE A_DEBQ_A.[dbo].[art]  WITH CHECK ADD  CONSTRAINT [FK_art_sub_lin] FOREIGN KEY([co_subl], [co_lin])
REFERENCES [dbo].[sub_lin] ([co_subl], [co_lin])
GO)

表 dbo.sub_lin 的行:

co_lin  co_subl
AREN    222   
PRSP    222   

我不知道如何解决它给我的错误!感谢您的帮助!

【问题讨论】:

  • 导致错误的INSERT语句是什么?
  • 没有人能在不查看执行插入语句之前立即存在的行、插入语句本身以及插入语句用作源的行的情况下为您提供帮助。

标签: sql sql-server foreign-keys sql-insert


【解决方案1】:

在您的表 A_DEBQ_A.[dbo].[art] 中,它具有对另一个表的外键引用。 FK 的工作方式是它在该列中的值不能不在被引用表的主键列中。

如果您有 SQL Server Management Studio,请将其打开并 sp_help 'A_DEBQ_A.[dbo].[art]' 查看 FK 在哪个列上,以及它引用哪个表的哪个列。您正在插入一些错误数据。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多