我已经将我的应用程序数据库从mysql改为postgres,因为权限模块给出了异常:
`CDbCommand failed to execute the SQL statement: SQLSTATE[42P01]: Undefined table: 7
ERROR: relation "authitem" does not exist
LINE 2: FROM AuthItem t1
^. The SQL statement executed was: SELECT
name,t1.type,description,t1.bizrule,t1.data,weight
FROM AuthItem t1
LEFT JOIN Rights t2 ON name=itemname
ORDER BY t1.type DESC, weight ASC `
我已经复习了表格的名称,它和“case sensitive”完全一样。
最佳答案
如果数据库中的表名是AuthItem
而不是authitem
,则查询应为:
FROM "AuthItem" t1
注意双引号。
无论您使用的是什么,都会将表创建为
CREATE TABLE "AuthItem"
,然后将其查询为SELECT ... FROM AuthItem
。这些是不同的东西。是的,这很令人困惑,但这就是SQL标准所说的—case被折叠在未引用的标识符上,并保留在引用的标识符上。关于php - 转换为Postgres后,Yii权限模块错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24360564/