gpt4 book ai didi

postgresql - 为什么带尾部拼写错误的双引号中的表名是有效语法

转载 作者:行者123 更新时间:2023-11-29 14:14:41 25 4
gpt4 key购买 nike

我在我的 Postgres 终端中输入了以下查询,在尾随双引号之后和分号之前意外地输入了 l。我预计会出现语法错误,但我却得到了查询结果:

select * from "myTable"l;

事实上,我可以在尾随的双引号后放置任何我想要的东西,而且我仍然没有得到语法错误:

select * from "myTable"asdkjh;

我检查了我认为的 relevant docs关于如何格式化双引号字符串,但它没有提到这一点。

那么,为什么会这样呢?

最佳答案

lasdkjh 被视为table alias .

用于引入别名的关键字AS 是可选的,因此您也可以编写from foo x 而不是from foo as x

from foox 然而确实是一个错误,因为它会被当作一个完整的表名。由于您使用了带引号的标识符,因此标​​识符结束和下一个标识符开始的位置很清楚 - 因此标识符和别名之间不需要空格。

所以,from "myTable"asdkjh 等同于 from "myTable"asdkjh


但是,from "myTable""some_alias" 将是一个错误,因为它被视为单个标识符 - 要在带引号的标识符中包含双引号,您需要写两个引号,所以 "myTable""some_alias" 引用名为 myTable"some_alias

的表

关于postgresql - 为什么带尾部拼写错误的双引号中的表名是有效语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53191729/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com