请帮忙
[app][ERROR ] CDbCommand::fetchAll() failed: SQLSTATE[42601]: Syntax error: 7 ERROR: syntax error at or near "field_name"
LINE 1: SELECT k.column_name field_name
^. The SQL statement executed was: SELECT k.column_name field_name
FROM "information_schema"."key_column_usage" k
LEFT JOIN "information_schema"."table_constraints" c
ON k.table_name = c.table_name
AND k.constraint_name = c.constraint_name
WHERE c.constraint_type ='PRIMARY KEY'
AND k.table_name = :table
AND k.table_schema = :schema.
答案 0 :(得分:0)
请检查您要连接的PostgreSQL的版本。事实证明,从8.4开始支持省略as
关键字。
以下是8.4 release notes部分 E.23.3.3的引用。查询:
在指定SELECT(或RETURNING)列时允许AS是可选的 输出标签(Hiroshi Saito)
只要列标签不是任何PostgreSQL关键字,这都有效; 否则仍然需要AS。
因此,SELECT k.column_name field_name
对于8.3及更低版本无效,但SELECT k.column_name AS field_name
会有效。
如果PostgreSQL版本是您的问题的原因,您有几个选择: