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(”“)。