簡體   English   中英

SQL 服務器 - 違反唯一密鑰約束

[英]SQL SERVER - Violation of UNIQUE KEY Constraint

我正在嘗試使用 INSERT SELECT 將不同的值插入到表中。 這是我的查詢

INSERT INTO oltp.Region(Region_Name,Country_Id)
(SELECT DISTINCT region,country_id FROM csv.Neighbourhoods, oltp.Country)

這些是桌子

oltp.國家

csv.社區

在此處輸入圖像描述

我想要一個表格,顯示區域名稱和它們來自的國家 FK。

這些是表創建

CREATE TABLE oltp.Country
(Country_Id int NOT NULL PRIMARY KEY IDENTITY(1,1),
Country_Name nvarchar(255) NOT NULL UNIQUE)

CREATE TABLE oltp.Region
(Region_Id int NOT NULL PRIMARY KEY IDENTITY(1,1),
Region_Name nvarchar(255) NOT NULL UNIQUE,
Country_Id int FOREIGN KEY REFERENCES oltp.Country(Country_Id))

你需要一個JOIN

INSERT INTO oltp.Region (Region_Name,Country_Id)
    SELECT DISTINCT n.region, c.country_id
    FROM csv.Neighbourhoods n JOIN
         oltp.Country c
         ON n.country = c.country_name;

切勿FROM子句中使用逗號。 始終使用正確、明確、標准、可讀的JOIN語法。

此外,您應該將國家/地區 ID 存儲在Neighbourhoods表中,而不是名稱。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM