sql - 插入时违反了唯一约束
问题描述
我正在运行这段代码
INSERT INTO ADW12_DW.WC_MFG SELECT * FROM ADW12_DW.WC_MFG_bkp;
COMMIT;
在此之前,ADW12_DW.WC_MFG 被截断以更新列大小。所以在运行上述代码之前 ADW12_DW.WC_MFG 是空的。
解决方案
添加的数据中可能存在重复项。这是限制插入数据的一种方法:
INSERT INTO ADW12_DW.WC_MFG
SELECT w.*
FROM ADW12_DW.WC_MFG_bkp w
WHERE w.rowid IN (SELECT MIN(w2.rowid)
FROM ADW12_DW.WC_MFG_bkp w2
WHERE w2.col = w.col
);
col
代表什么是“独特的”。它可能不止一列。
推荐阅读
- bash - 如何在 bash 脚本中创建标记化工具?
- python - 在 python asyncio 中同时运行函数
- android - Flutter Android Release Build 结果出现 ApiException 10
- python-3.x - 有没有办法定义资源目录(不仅仅是文件名)以在 Python 中使用 pkg_resources 进行提取?
- python-3.x - 没有 url 的烧瓶请求路径
- rabbitmq - 如何提高 RabbitMQ 低发布率性能
- business-objects - 在 Business Objects 中将计时器格式 hh:mm 转换为十进制格式 hh.decimal(mm)
- python - 创建进程失败
- reactjs - React Js Firebase Cloud消息在屏幕处于活动状态时未收到通知
- c++ - 在单元测试中,如何比较两个对象而不使用可能会错过新成员的 operator==?