误导向:解决Postgresql因为大小写敏感导致Citus无法创建分片表的问题

由于 PostgreSQL 是大小写敏感的,并默认对SQL语句转化为小写。刚开始使用时我以为是不支持_而修改表名来解决问题,然而在今天有个表没有_还是不停提示对象 "xxx" 不存在后来一通测试才发现好像是“不支持”大写的问题,一开始我是手动将表重命名为全部小写的来创建分片表的。但是这不太现实,不可能没个表都修改一遍,虽然可以通过代码转小写让后续创建的表直接小写。

最后经过一波搜索找不到Citus不支持大写的相关结果,但转眼一想可能是Postgresql大小写敏感的原因导致的。。。。。。

虽然搜索到了加双引号就可以解决问题了,一开始直接把单引号改成双引号会报错。后来使用骚操作单引号再加双引号给解决这个问题了,为了便于后续使用进行记录。

CREATE TABLE "public"."User_Name" (
  "id" varchar(255) NOT NULL,
  "name" varchar(255),
  PRIMARY KEY ("id")
);
SELECT create_distributed_table('"User_Name"', 'id');

为了给自己一个面子,在这之前的创建各种大小写下划线的过程就不记录在这上面了。

ChiuYut

2021年7月1日

发布者

ChiuYut

咦?我是谁?这是什么地方? Ya ha!我是ChiuYut!这里是我的小破站!