pg建唯一约束报错

1、问题描述

pg数据库增加唯一约束报错

数据表如下

CREATE TABLE "dquality_ycbf"."test1" (
  id serial primary key,
  "rq" date,
  "sfjjr" varchar(2) COLLATE "pg_catalog"."default"
)
;

建唯一约束

ALTER TABLE dquality_ycbf.test1 ADD UNIQUE (rq);
 

执行语句报错:UNIQUE index must contain all columns in the distribution key of relation "test1"

2、解决。

把表修改成复制表,然后增加唯一约束

    alter table dquality_ycbf.test1 set Distributed REPLICATED;
    
ALTER TABLE dquality_ycbf.test1 ADD UNIQUE (rq);

当你尝试登录PostgreSQL(pg数据库并遇到"PQgssEncInUse"错误时,这通常意味着你在当前的连接上下文中,加密功能(如SSL/TLS)已经被启用并且处于活动状态,而你又试图在同一会话中再次启用它。这个错误表明已经有一个连接正在使用加密连接,并不允许同时创另一个使用相同加密设置的新连接。 解决这个问题,你可以按照以下步骤操作: 1. **关闭现有的加密连接**:首先,检查并确认是否有其他连接仍然保持加密状态,如果有,关闭它们。 ``` \c - # 如果在命令行环境,输入此命令退出当前加密连接 ``` 2. **重新立连接**:关闭原有连接后,以非加密方式重新连接到数据库。 ``` psql -d your_database_name -U your_username ``` 或者如果你之前设置了sslmode为'require',可以使用`sslmode=disable`选项: ``` psql -d your_database_name -U your_username -c "SET sslmode to disable" ``` 3. **如果需要加密连接**:确需加密连接时,先断开所有非加密连接,然后重新立一个加密连接。 ``` psql -d your_database_name -U your_username -h your_host -p your_port -c "SET sslmode to require" ``` 4. **检查配置**:确保你的系统配置允许连接在适当的时候切换加密模式。检查`postgresql.conf`文件中关于`ssl`和`sslmode`的设置。 如果以上步骤无法解决问题,可能是网络环境或其他高级安全设置导致的,议查阅更详细的官方文档或寻求专业的技术支持。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

爱晒太阳的小老鼠

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值