使用一个INSERT语句复制多个记录

问题描述 投票:1回答:1

在MS-Access 2019中,我想从tblTest 复制现有记录并将一个字段tLink更改为另一个表的外键。

我知道如何通过VBA遍历记录集来做到这一点,但是我想在这里使用SQL。我认为可以用单个语句解决,并且作为SQL新手,我很想学习如何做。

因此,假设一个简单的表tblTesttIDPrimary Keyauto-number

tID    tLink    tName
Long   Long     Text(50)
-----------------------------
1       3       Bill
2      17       Sue
3       9       Tom
4       3       Chris

我想用tLink = 3复制所有记录,并将它们的tLink设置为1

[在各种教程中窥探时,我学到了...

INSERT INTO tblTest SELECT * FROM tblTest WHERE tID=1

...但是,此操作失败,因为tID必须是唯一值。

因此我被困在这一点上,从表中删除primary key在这里不是一个选择。有没有解决的办法?

因此,(1)如何在不遇到primary key问题的情况下复制一个记录,然后,(2)带有1个SQL语句的多个记录?

然后我将使用UPDATEtLink设置为1 WHERE tLink=3

sql ms-access sql-insert
1个回答
0
投票

我想用tLink = 3复制所有记录,并将它们的tLink设置为1

如果有自动编号列,则可以在插入语句中保留它。

这应该很简单:

INSERT INTO tblTest(tLink, tName) SELECT 1, tName FROM tblTest WHERE tLink = 3
© www.soinside.com 2019 - 2024. All rights reserved.