SQLite中有效的表名是什么?

SQLite中表名的字符组合是有效的? 所有字母数字组合(AZ,az和0-9)是否构成一个有效的名称?

Ex. CREATE TABLE 123abc(...); 

如何将字母和数字组合成短划线“ – ”和句点“。”,这种情况也是有效的?

 Ex. CREATE TABLE 123abc.txt(...); Ex. CREATE TABLE 123abc-ABC.txt(...); 

谢谢。

我还没有find它的参考,但有效的表名不使用括号括起来应该是任何字母数字组合,不以数字开头:

 abc123 - valid 123abc - not valid abc_123 - valid _123abc - valid abc-abc - not valid (looks like an expression) abc.abc - not valid (looks like a database.table notation) 

使用方括号,你应该可以使用几乎任何东西作为表名称:

 [This should-be a_valid.table+name!?] 

所有这些都是允许的,但是你可能必须在""引用它们。

 sqlite> CREATE TABLE "123abc"(col); sqlite> CREATE TABLE "123abc.txt"(col); sqlite> CREATE TABLE "123abc-ABC.txt"(col); sqlite> select tbl_name from sqlite_master; 123abc 123abc.txt 123abc-ABC.txt 

一般来说,你应该坚持字母表。

从CREATE TABLE的 SQLite 文档中 ,唯一禁止的名字是那些以sqlite_开头的sqlite_

以“sqlite_”开头的表名保留供内部使用。 尝试创build名称以“sqlite_”开头的表是错误的。

Per Clemens在sqlite-users邮件列表上:

一切都是允许的,除了以“sqlite_”开头的名字。

 CREATE TABLE "TABLE"("#!@""'☺\", ""); 

您可以使用关键字(“TABLE”),特殊字符(“”#!@“”'☺\“),甚至空string(”“)。