在MS-Access 2019中,我想从tblTest
复制现有记录并将一个字段tLink
更改为另一个表的外键。
我知道如何通过VBA
遍历记录集来做到这一点,但是我想在这里使用SQL
。我认为可以用单个语句解决,并且作为SQL新手,我很想学习如何做。
因此,假设一个简单的表tblTest
,tID
是Primary Key
和auto-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
语句的多个记录?
然后我将使用UPDATE
将tLink
设置为1
WHERE tLink=3
。
我想用
tLink = 3
复制所有记录,并将它们的tLink
设置为1
。
如果有自动编号列,则可以在插入语句中保留它。
这应该很简单:
INSERT INTO tblTest(tLink, tName) SELECT 1, tName FROM tblTest WHERE tLink = 3