[英]Which are the criteria for defining " as mandatory or not in a Postgresql query?
我开始使用Postgresql,我转换了MS SQL DB,但我无法理解为什么
SELECT * FROM MYTABLE
不起作用
而
SELECT * FROM "MYTABLE" does
此外,从另一台机器,连接到相同的DB我可以运行
SELECT * FROM MYTABLE --(without ")
所有测试均使用PGAdmin III Windows客户端完成。 Postgresql安装在Linux服务器上。
这是一个PG新手问题,我希望你能提供帮助。
默认情况下,postgresql会将SQL语句中的不带引号的标识符转换为小写; 这与不区分大小写的匹配不同。
因此,如果您已经定义了一个名为“TABLE”的表,那么您需要将其称为“TABLE”,因为只有TABLE将被解释为“table”。
很简单,最好的策略是避免在postgresql中使用大写标识符:目录和我见过的大多数示例使用由下划线(the_thing)分隔的小写单词。 您可以使用混合大小写标识符,但在这种情况下,您有两种选择:
这些按优先顺序概述了我的建议:坚持小写风格,混合案例并接受折叠,坚持混合案例并处理各地的引用标识符。
PS不要让我开始调用表“表”。 我假设那只是一个(愚蠢的)例子。 这也是一个不好的例子,因为“select * from table”会产生语法错误,所以很明显,这不是你实际尝试运行的语句。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.