Google Cloud Spanner表名称和列名称何时以及为什么区分大小写?

时间:2019-06-06 13:13:04

标签: google-cloud-spanner

扳手文档说:

  

表和列名称:

     
      
  • 长度可以在1-128个字符之间。必须以大写或小写字母开头。
  •   
  • 可以包含大写和小写字母,数字和下划线,但不能包含连字符。
  •   
  • 不区分大小写。例如,您不能在同一数据库中创建名为mytable和MyTable的表,也不能在名为mycolumn和   同一列中的MyColumn。
  •   

https://cloud.google.com/spanner/docs/data-definition-language#table_statements

鉴于此,我不知道这意味着什么:

  

表名通常不区分大小写,但可能区分大小写   查询使用区分大小写的表名的数据库时。

https://cloud.google.com/spanner/docs/lexical#case-sensitivity

实际上,表名似乎区分大小写,例如:

Spanner tables

如果我们与用户界面中显示的大小写不匹配,则查询将失败。

2 个答案:

答案 0 :(得分:0)

我添加了一些示例,所以我们可以看到区别。

表名区分大小写,在此示例中,没关系,只有一个表:

示例1:

选择*

FROM名册

WHERE LastName = @myparam

返回所有姓氏等于查询参数myparam值的行。

但是对于示例2,如果我们比较两个表,或者使用表进行其他类型的查询。

选择ID,名称

FROM表1,除了选择ID,名称

FROM表2

它将为您提供Table1中的所有内容,但不能为Table2中的所有内容提供

答案 1 :(得分:0)

这似乎是文档中的错误。表名称在Cloud Spaner中不区分大小写。我将跟进文档团队。