【发布时间】:2012-12-06 11:23:27
【问题描述】:
SQL 中apostrophe 和quotation mark 的查询字符串中的角色是什么? apostrophe 怎么换?
主要兴趣是他们在 PostgreSQL 中的特定角色。
离开apostrophe会导致SQL查询混乱,例如:
SELECT role FROM "USER_ROLES" WHERE "USER_ROLES".login = admin;
当 admin 是一个值时,获取“列”管理员不存在错误。写 'admin' 可以解决问题:
SELECT role FROM "USER_ROLES" WHERE "USER_ROLES".login = 'admin';
实际问题是在另一个上下文中使用查询:
<module-option name="rolesQuery" value="SELECT 'role', 'Roles' FROM "USER_ROLES" WHERE login='?'"/>
根据要求,表定义为:
CREATE TABLE "USER_ROLES" (
login text NOT NULL,
role text,
CONSTRAINT "USER_ROLES_pkey" PRIMARY KEY (login ),
CONSTRAINT "USER_ROLES_login_fkey" FOREIGN KEY (login)
REFERENCES "USER" (login) MATCH SIMPLE
ON UPDATE NO ACTION ON DELETE NO ACTION
)
PostgreSQL 版本 9.1。
【问题讨论】:
-
请显示您的确切表定义,以便我们知道标识符是否实际上是大写字母。还有你的 PostgreSQL 版本。
-
您的表中没有“ROLES”列?
标签: sql postgresql syntax case-sensitive