SQL SERVER - 违反唯一键约束

BadAtCAKEPHP

我正在尝试使用 INSERT SELECT 将不同的值插入到表中。这是我的查询

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

这些是表

oltp.国家

csv.邻里

在此处输入图片说明

我想要一个表格,显示区域名称和它们来自的国家/地区。

这些是表的创建

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语法。

此外,您应该在Neighbourhoods表中存储国家 ID ,而不是名称。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

sql server:唯一约束生成唯一键和唯一索引

SQL Server中列中新值的唯一键约束

每个分区的sql server唯一键

检查SQL Server中唯一键是否为复合键

SQL Server中的唯一键是聚集索引还是非聚集索引?

更新没有唯一键的 Microsoft SQL Server 值

SQL Server-通过唯一键查找行模式组

在哪里可以找到 SQL Server 中所有已禁用的唯一键?

根据 SQL Server 唯一键违规增加库存数量

如何在 SQL-Server 中创建具有两列的唯一键

SQL Server:违反主键约束不能插入重复的键

违反Oracle SQL唯一约束

SQL SERVER:唯一约束说明

违反复合键中的唯一键约束?

在 SQL Server 中,有没有办法在两个表之间建立关系,其中一个表有 3 个唯一键,表二有 2 个唯一键?

如何找到违反唯一键约束的记录?

SQL Server 违反 PRIMARY KEY 约束

违反PRIMARY KEY约束。无法在对象中插入重复键-SQL Server

合并sql抛出唯一约束违反错误

如何在SQL Server中创建唯一的约束?

SQL Server 2005如何创建唯一约束?

SQL Server 2008:与列无关的值的唯一约束

重复插入和唯一约束SQL Server 2008

如果未删除 SQL 唯一键

创建SQL表是否允许NULL(唯一键?)

Hibernate在更新唯一键的字段部分时引发唯一约束违反异常

SQL Server:创建唯一索引的重复键

SQL Server-唯一索引与唯一约束-重新。值重复

在同一键但不同的INCLUDE列上合并SQL Server索引