Sql server 冲突外键SSM
我正在尝试将我的CSV插入我的表中。我有一张名为Income的表格,如下所示:Sql server 冲突外键SSM,sql-server,database,Sql Server,Database,我正在尝试将我的CSV插入我的表中。我有一张名为Income的表格,如下所示: Create table Income ( incomeID INT PRIMARY KEY IDENTITY, income_bracket varchar(100) NOT NULL, ); 此表中只有两行。其50K。因此,只有2个ID。我的CSV文件还显示只有2行。这是我的外键约束: AlTER TABLE IncomeFacts ADD CONSTRAINT FK_incomeID FO
Create table Income
(
incomeID INT PRIMARY KEY IDENTITY,
income_bracket varchar(100) NOT NULL,
);
此表中只有两行。其50K
。因此,只有2个ID。我的CSV文件还显示只有2行。这是我的外键约束:
AlTER TABLE IncomeFacts ADD CONSTRAINT
FK_incomeID FOREIGN KEY (incomeID)REFERENCES Income(incomeID);
注-IncomeFacts
是我的事实表
在SQL中插入时,我有以下几点:
BULK INSERT [US_AdultIncome].[dbo].[Income] FROM '$(SqlPathAdultIncome)IncomeTable.csv'
WITH (
CHECK_CONSTRAINTS,
--CODEPAGE='ACP',
FIRSTROW = 2,
DATAFILETYPE='char',
FIELDTERMINATOR=',',
ROWTERMINATOR='\n',
--KEEPIDENTITY,
TABLOCK
);
第一行是标题,所以我跳过它
但是我得到了这个错误:
Msg 547, Level 16, State 0, Line 125
The INSERT statement conflicted with the FOREIGN KEY constraint "FK_incomeID". The conflict occurred in database "US_AdultIncome", table "dbo.Income", column 'incomeID'.
我知道错误的含义,但我可以在任何地方看到这不起作用的原因。尝试检查IncomeFacts表中的列(incomeID)数据类型是否具有相同的条件,如varchar not null或类似的情况。通常大多数人不希望CSV文件包含在数据库本身中生成的ID值。通常,我们看到所涉及的表的自然键和导入过程必须以某种方式将自然键转换为合成键。如果这是您的期望,批量插入不会自动为您执行此操作。请关闭FK,让数据插入并检查它。