首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SQL Insert non添加不存在的ID

SQL Insert non添加不存在的ID
EN

Stack Overflow用户
提问于 2012-05-25 23:02:40
回答 3查看 2.1K关注 0票数 1

我正在尝试清理表中的数据,以便创建一对一的关系。具有主键的表比与其共享一对一关系的表具有更多的记录。为了解决这个问题,我尝试将表2中缺少的ID插入到表2中。

代码语言:javascript
复制
INSERT INTO medical_Surveillance(dbo.Medical_surveillance.EmpID)
SELECT dbo.EmployeeInformation.EmpID
FROM EmployeeInformation
WHERE not exists (select dbo.medical_Surveillance.EmpID from medical_Surveillance
WHERE dbo.medical_Surveillance.EmpID = dbo.EmployeeInformation.EmpID)

这条SQL语句有什么问题?在运行时,它会尝试将值插入dbo.Medical_surveillance.EmpID以外的列。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-05-25 23:06:31

您可以对左连接执行相同的操作:

代码语言:javascript
复制
INSERT INTO medical_Surveillance(EmpID)
SELECT EmployeeInformation.EmpID
FROM EmployeeInformation
    LEFT JOIN medical_surveillance ON EmployeeInformation.EmpID = medical_surveillance.EmpID
WHERE medical_surveillance.EmpID IS NULL
票数 1
EN

Stack Overflow用户

发布于 2012-05-27 23:57:44

解决后,SQL语句没有任何错误。我还有其他列被设置为not null,但没有默认值。当语句运行时,它会尝试将空值插入到这些列中。通过添加默认值修复。

票数 1
EN

Stack Overflow用户

发布于 2012-05-25 23:07:43

代码语言:javascript
复制
INSERT INTO medical_Surveillance(EmpID)
SELECT ei.EmpID
FROM EmployeeInformation as ei
WHERE ei.EmpID not in (select ms.EmpID from medical_Surveillance as ms)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10756803

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档