让我们考虑以下 postgres 查询:
SELECT *
FROM "MY_TABLE"
WHERE "bool_var"=FALSE
AND "str_var"='something';
当我删除周围的引号时,查询无法正确响应"str_var"
但当我做同样的事情时就不会了"bool_var"
。为什么?在这种情况下,编写查询的正确方法是什么,布尔列周围没有引号,文本列周围没有引号?还有别的事吗?
如果你不通过双引号来阻止,PostgreSQL 会将所有名称(表名、列名等)转换为小写create table "My_Table_ABC" ( "My_Very_Upper_and_Lowercasy_Column" numeric,...)
。如果您有这样的名称,则必须始终在选择和其他引用中双引号这些名称。
我建议不要创建这样的表,也不要在外部使用字符a-z
, 0-9
and _
。您不能保证用于您的数据库的每个软件、库等都支持区分大小写。记住和执行这种双引号也很乏味。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)