首页 > 解决方案 > 将表格中的数据插入表格

问题描述

我有一个包含字段的表“发票”,它们UserID都不是主键。PurchaseOrderIDInvoiceRef

我想创建一个带有表格的表格,我在其中粘贴发票信息,然后单击按钮 VBA 运行并将数据粘贴到Invoices表格中。大多数我可以做,但我无法理解的 SQL 部分是如何防止重复,我所说的重复是指带有 with 的发票UserIDPurchaseOrderID并且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)

标签: sqlsql-insert

解决方案


ALTER TABLE INVOICES
  ADD CONSTRAINT <name u wish> UNIQUE(UserID, PurchaseOrderID,InvoiceRef);

所以,它的作用是每当你插入一条记录,如果三列的组合存在,它不会让你插入那条记录。


推荐阅读