我正在使用Seqeulize和Nodejs。
我的表名是“Users”,它有一个列“userName”。我已将ts vectored列命名为userNameVector。在尝试创建列并设置触发器时,我不断收到错误“errorMissingColumn”。
显然它告诉我,我的专栏“userName”不存在,但我检查了三次,确实如此。
节点控制台的日志如下:
Executing (default): ALTER TABLE "Users" ADD COLUMN "userNameVector" TSVECTOR
Executing (default): UPDATE "Users" SET "userNameVector" = to_tsvector('english', userName)
Executing (default): CREATE INDEX userName_search_idx ON "Users" USING gin("userNameVector");
Executing (default): CREATE TRIGGER userName_vector_update BEFORE INSERT OR UPDATE ON "Users" FOR EACH ROW EXECUTE PROCEDURE tsvector_update_trigger("userNameVector", 'pg_catalog.english', userName)
{ [Error: column "username" does not exist]
severity: 'ERROR',
code: '42703',
position: '62',
file: 'parse_relation.c',
line: '2655',
routine: 'errorMissingColumn',
sql: 'UPDATE "Users" SET "userNameVector" = to_tsvector(\'english\', userName)' }
答案 0 :(得分:0)
看起来像另一个被误导的CaMeL案件名称。
Postgres标识符默认为低位。如果您使用非标准名称(合法,全部为小写)并在创建时双引号,则必须在其余生中对其进行双重引用。所以:
"userName"
代替userName
相关: