当前位置: 首页 > news >正文

KES数据库重复键违反唯一约束

一、唯一约束基本概念

唯一约束(UNIQUE Constraint)是KES数据库中确保表中列或列组合的值唯一的一种约束机制。当试图插入或更新数据违反这一约束时,数据库会抛出"重复键违反唯一约束"的错误。

唯一约束主要特点:

  • 确保列或列组合的值在表中唯一
  • 允许NULL值(NULL不等于NULL,因此可存在多个NULL)
  • 自动创建唯一索引来支持约束检查

二、错误表现形式

当违反唯一约束时,KES会抛出如下错误:

ERROR:  duplicate key value violates unique constraint "约束名"
DETAIL:  Key (列名)=(重复值) already exists.

三、创建唯一约束的方法

1. 建表时创建

-- 单列唯一约束
test=# CREATE TABLE products (
test(#     product_id INTEGER PRIMARY KEY,
test(#     product_code VARCHAR(20) UNIQUE,
test(#     product_name VARCHAR(100)
test(# );
CREATE TABLE-- 多列组合唯一约束
test=# CREATE TABLE orders (
test(#     order_id INTEGER PRIMARY KEY,
test(#     customer_id INTEGER,
test(#     order_date DATE,
test(#     UNIQUE (customer_id, order_date)
test(# );
CREATE TABLE

image

2. 表已存在后添加

-- 添加单列唯一约束
test=# ALTER TABLE products ADD CONSTRAINT uk_product_code UNIQUE (product_code);
ALTER TABLE-- 添加多列组合唯一约束
test=# ALTER TABLE orders ADD CONSTRAINT uk_customer_order UNIQUE (customer_id, order_date);
ALTER TABLE

image

四、违反约束的典型场景

1. 插入重复值

test=# INSERT INTO products VALUES (1, 'P001', '笔记本电脑');
INSERT 0 1
test=# INSERT INTO products VALUES (2, 'P001', '智能手机');  -- 报错
ERROR:  重复键违反唯一约束"products_product_code_key"
描述:  键值"(product_code)=(P001)" 已经存在

image

2. 更新为重复值

UPDATE products SET product_code = 'P001' WHERE product_id = 2; -- 报错

3. 批量操作中的部分重复

test=# INSERT INTO products VALUES
test-# (3, 'P003', '键盘'),
test-# (4, 'P004', '鼠标'),
test-# (5, 'P003', '显示器');  -- 报错,整个语句回滚
ERROR:  重复键违反唯一约束"products_product_code_key"
描述:  键值"(product_code)=(P003)" 已经存在

image

五、处理违反约束的解决方案

1. 忽略重复行(使用ON CONFLICT子句)

-- 冲突时不执行操作
test=# INSERT INTO products VALUES (2, 'P001', '智能手机')
test-# ON CONFLICT (product_code) DO NOTHING;
INSERT 0 0-- 冲突时更新其他列
test=# INSERT INTO products VALUES (2, 'P001', '智能手机')
test-# ON CONFLICT (product_code)
test-# DO UPDATE SET product_name = EXCLUDED.product_name;
INSERT 0 1

image

http://www.sczhlp.com/news/72061/

相关文章:

  • 福田官网网站wordpress wp list pages
  • 怎样创建设计公司网站网站虚拟主持人代码
  • 珠海华兴建设工程有限公司网站网站建设目标是什么
  • 网站开发费 会计科目扬州网站建设 天维
  • 中国建设银行注册网站aws 虚机wordpress教程
  • 展示型网站一样做seo优化吗建设银行的财务网站
  • 网站建设开票项目是什么意思设计制作公司
  • 手机版网站设计百度推广投诉中心
  • 文佳佳做网站酷播wordpress视频插件
  • Redis缓存雪崩、击穿、穿透
  • 批量将数字设置为文本格式
  • find方法的常见应用
  • CC++ 小结之位操作
  • 品牌 网站建设wordpress更换ssl
  • 网站对公司的作用是什么网上国网推广方案
  • wap网站建设流程可以做录音兼职的网站
  • 给中小企业提供网站建设服务做微信的微网站费用多少
  • 个体工商户经营范围做网站怎么做网站认证
  • 代码执行漏洞
  • mysql管理软件,三大MySQL图形化管理工具对比
  • 【SAE出版、EI稳定检索】第五届物流系统与交通运输国际学术会议(LSTT 2025)
  • 唐山有制作网站的没手表价格网站
  • xuzhou公司网站制作百度seo可能消失
  • dw做网站表格插不到右边网上机械加工厂
  • 头像代做网站佛山做网站-准度科技公司
  • 基于js原生的新闻类静态网站建设网站简易后台
  • 奇趣统计网站谁做的厦门建设局网站商品房
  • 网站建设和域名备案住房和城乡建设网站 上海
  • 做茶歇的网站网站建设怎样回答客户问题
  • 百度新网站收录深圳市路桥建设集团有限公司招标采购网站