postgresql 判断数据是否存在,如果不存在添加一条
在PostgreSQL中判断name为1的数据是否存在并实现不存在时插入,可通过以下三种方式实现:
1 使用ON CONFLICT语法(需name列有唯一约束):
此方法依赖name列的唯一约束,冲突时自动跳过插入。
INSERT INTO your_table(name, other_columns)
VALUES('1', 'values')
ON CONFLICT(name) DO NOTHING;
2 使用DO匿名块(通用性强):通过显式判断实现条件插入。
DO $$
BEGIN
IF NOT EXISTS(SELECT 1 FROM your_table WHERE name='1') THEN
INSERT INTO your_table(name, other_columns) VALUES('1', 'values');
END IF;
END $$;
3 使用WITH子查询(单语句完成): 利用CTE实现条件判断。
WITH s AS (SELECT '1' AS name WHERE NOT EXISTS(SELECT 1 FROM your_table WHERE name='1'))
INSERT INTO your_table(name, other_columns)
SELECT name, 'values' FROM s;
注意事项:
方法1要求name列必须定义唯一约束
方法2可扩展添加更复杂的判断逻辑
字符串值需用单引号包裹('1')
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐


所有评论(0)