我正在尝试制作一些跨数据库(SQL Server 和 PostgreSQL)兼容的 SQL。我需要做的是克隆一行。最好在 SQL 服务器上本地执行此操作,而不必将整行下拉到我们的客户端并重新插入。此外,我们宁愿不必从头开始创建新的 SQL 查询,动态输入列名,但我想这是一个选项。
例如:我们有一个地址表,它是这样的表: address_rid: integer, primary key, auto-incrementing, not null address1: varchar(100) address2: varchar(100)
好吧,我们的目标是能够克隆这些行之一,以便 address1 和 address2 相同,但 address_rid 将像往常一样设置为下一个值。
你会怎么做呢?
另外,我已经看到了在 SQL 中克隆行的最快方法
其中有
INSERT INTO PrimKeys
SELECT 'PrimKey2' AS PrimKey,*
FROM PrimKeys
WHERE PrimKey='PrimKey1'
我无法让这样的东西在 postgres 上工作,也无法default
在插入的主键上使用类似的东西。
编辑:另外,我也希望在 SQL Server 和 Postgres 上执行 2 个单独的查询,尽管我更愿意只维护 1 个查询。
我使用 C# ado.net 作为我的客户端。