Cause: org.postgresql.util.PSQLException: ERROR: there is no unique or exclusion constraint matching

目录

1 实现

原因是sql语句中用到了conflict但表结构里面没有相关的限制

举例:
表结构如下:

CREATE TABLE "public"."test" (
  "a" varchar(255) COLLATE "pg_catalog"."default",
  "b" varchar(255) COLLATE "pg_catalog"."default",
  "c" varchar(255) COLLATE "pg_catalog"."default"
);

执行插入并使用confict:

insert into test values('a','b') on conflict(a,b) do update set c='1';

由于建表时没有建关于a,b的CONSTRAINT,于是就会报错,为表添加CONSTRAINTALTER TABLE "public"."test" ADD CONSTRAINT "test_pkey" PRIMARY KEY ("a", "b");


再执行就成功了。

猜你喜欢

转载自blog.csdn.net/python113/article/details/132620508