sql - 将表格中的数据插入表格
问题描述
我有一个包含字段的表“发票”,它们UserID
都不是主键。PurchaseOrderID
InvoiceRef
我想创建一个带有表格的表格,我在其中粘贴发票信息,然后单击按钮 VBA 运行并将数据粘贴到Invoices
表格中。大多数我可以做,但我无法理解的 SQL 部分是如何防止重复,我所说的重复是指带有 with 的发票UserID
,PurchaseOrderID
并且InvoiceRef
已经存在于Invoices
表中,例如,如果Invoices
表已经包含:
UserID | PurchaseOrderID | InvoiceRef
10001 | PO123123 | 9991
它将插入:
UserID | PurchaseOrderID | InvoiceRef
10001 | PO123123 | 9992
但不是:
UserID | PurchaseOrderID | InvoiceRef
10001 | PO123123 | 9991
下面是我正在使用但卡在 WHERE 子句的 SQL:
INSERT INTO INVOICES
(UID, POID, REFID)
SELECT IMPORT.UID,
IMPORT.POID,
IMPORT.REFID
FROM INVOICES
WHERE NOT EXISTS(STUCK HERE)
解决方案
ALTER TABLE INVOICES
ADD CONSTRAINT <name u wish> UNIQUE(UserID, PurchaseOrderID,InvoiceRef);
所以,它的作用是每当你插入一条记录,如果三列的组合存在,它不会让你插入那条记录。
推荐阅读
- c# - 从 Marshal.PtrToStringAnsi 返回的字符串的编码是什么?
- r - infoBox shinydashboard 上的自定义图标
- python-3.x - 求和之谜看到重复值
- asp.net - 多个环境 Azure Blob 存储连接字符串似乎有冲突
- max - 如何在 Google Data Studio 中获得“与最小值的差异”?
- pdf - 应用程序未在 iOS13 的电子邮件客户端中打开以显示 pdf 文件
- selenium - Selenium 中的 Firefox 崩溃
- scala - 更改 spark 2.1 中的新行分隔符
- c# - C# 在控制台窗口中显示两个列表
- node.js - 如何允许用户使用 OAuth 登录