sql-server - 具有唯一约束的 SQL Server 到 PostgreSQL
问题描述
我正在尝试通过使用 pg 作为链接服务器并调用 SQL Server 的存储过程将数据从 MS SQL Server 推送到 PostgreSQL(都在我的本地设备上)。
一个简单的
INSERT INTO [POSTGRESQL].[mypgdb].[MyPgSchema].[MyPgTable](MyPgCol1, MyPgCol2, MyPgCol3)
(SELECT [MySqlCol1], [MySqlCol2], [MySqlCol3] FROM MySqlTable);
工作正常。
问题是我需要一个唯一约束(MyPgCol1, MyPgCol2, MyPgCol3)
来避免规范化表的重复行,并在我尝试插入 SQL Server 数据时出现唯一约束冲突错误。我知道我只能通过调用插入新行
INSERT INTO "MyPgSchema"."MyPgTable"("MyPgCol1", "MyPgCol2", "MyPgCol3")
VALUES (1, 2, 3),
ON CONFLICT ON CONSTRAINT "MyUniqueConstraint_On_Col1_Col2_Col3"
DO NOTHING;
来自 Postgre 网站。
但是如何ON CONFLICT ON CONSTRAINT... DO NOTHING;
在我的 SQL Server 存储过程中集成呢?我尝试了OPENQUERY语句,但语法不匹配。
还有其他方法可以从 SQL Server 端调用 PostgreSQL 查询吗?或者是否可以将 PostgreSQL 表配置为DO NOTHING
默认违反唯一约束?
解决方案
推荐阅读
- python - 帖子详细信息视图上的 django 评论表单
- c - RPi 4 GPIO在上升和下降触发器上的中断在C中不起作用
- refactoring - 函数调用作为另一个函数参数(重构)
- c - 为什么长期运行的程序总是要收割他们的僵尸孩子?
- postgresql - 在 PostgreSQL 中创建日期后每 3 个月重复一次未来日期
- python-3.x - 消息:元素在访问标签 python 时不可交互
- typescript - 如何在 GitHub 的 PR 上运行 linter?
- python - 反正有没有用 Python 从 HTML 中获取下一个文本元素?
- javascript - @typescript-eslint/parser parserOptions.ecmaVersion 被忽略/不 linting
- vue.js - 在 Vue JS 和 Firebase 中循环设置其值时不覆盖值