Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 冲突外键SSM_Sql Server_Database - Fatal编程技术网

Sql server 冲突外键SSM

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

我正在尝试将我的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 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,让数据插入并检查它。