python - 如果所有值都不存在于一行中,则插入记录
问题描述
我有三列:a,b,c。
如果 a、b、c 不存在于一行中,我想插入一个新行。
使用 Python 来做到这一点。
INSERT INTO mytable(column_a, column_b, column_c)
VALUES(value_a, value_b, value_c)
WHERE value_a, value_b, value_c are all unique in existing rows.
解决方案
解决此问题的一种方法是在三列上创建唯一索引。如果您尝试插入重复的行,数据库将拒绝插入。无需特殊查询。这应该适用于任何关系数据库,而不仅仅是 MySQL。
用这个创建唯一索引:
CREATE UNIQUE INDEX a_b_c ON mytable (column_a, column_b, column_c)
像这样插入:
INSERT INTO mytable(column_a, column_b, column_c) VALUES (value_a, value_b, value_c)
如果已经存在具有相同值的行column_a
,column_b
则column_c
数据库将拒绝插入,并且您将在 Python 中看到异常。
推荐阅读
- matplotlib-basemap - 为 3D 底图填充海洋
- firebase - Firebase 规则让用户查看自己的数据,/jobs 处的错误侦听器失败:permission_denied
- javascript - 如何循环输入输入的数组并根据它们的类型进行分类?
- google-oauth - 强制门户内的谷歌登录不起作用,谷歌不回复消息
- postgresql - 我可以删除视图但保存依赖视图吗?
- python - 使用 Python 登录一个棘手的网站
- c# - 复杂类型模型的Linq查询
- javascript - 检查阵列是否相同有时不起作用?
- c# - 多个 JOINS 与它们之间的条件:LINQ 查询
- unreal-engine4 - 虚幻引擎 4 引用了一个 pawn actor 并拥有它