Citus“ create_distributed_table”给出“ PG :: UndefinedColumn”

问题描述

当尝试使用Citus创建分布式表时,它会给出PG::UndefinedColumn: ERROR: column "x" does not exist

我在工作人员和主数据库上启用了Citus:

SELECT run_command_on_workers($cmd$
  CREATE EXTENSION citus;
$cmd$);

我创建了一个复合主键:

ActiveRecord::Base.connection.execute("
  ALTER TABLE x DROP CONSTRAINT x_pkey CASCADE;
")
ActiveRecord::Base.connection.execute("
  ALTER TABLE x ADD PRIMARY KEY (tenant_id,id);
")

尝试时:

ActiveRecord::Base.connection.execute("
SELECT create_distributed_table(x,tenant_id);
")

它一直在说:

ActiveRecord::StatementInvalid: PG::UndefinedColumn: ERROR:  column "x" does not exist
LINE 2: SELECT create_distributed_table(x,tenant_id...
                                        ^
Caused by PG::UndefinedColumn: ERROR:  column "x" does not exist

有什么我忘记的东西吗?

解决方法

表名和列名需要作为文本值传递在单引号中:SELECT create_distributed_table('x','tenant_id');

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...