Подтвердить что ты не робот

Каковы допустимые имена таблиц в SQLite?

Какова будет комбинация символов для имени таблицы в SQLite? Являются ли все комбинации буквенно-цифровых символов (A-Z, a-z и 0-9) действительным именем?

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

Как насчет сочетания буквенно-цифровых символов с тире "-" и "периоды"? ", является ли это также действительным?

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

Спасибо.

4b9b3361

Ответ 1

Я не нашел ссылку для него, но имена таблиц, которые действительны без использования скобок вокруг них, должны быть любой буквенно-цифровой комбинацией, которая не начинается с цифры:

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!?]

Ответ 2

Все это разрешено, но вам, возможно, придется процитировать их в "".

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

В общем, вы должны придерживаться алфавита.

Ответ 3

В SQLite документация по CREATE TABLE, единственными запрещенными именами являются те, которые начинаются с sqlite_:

Названия таблиц, начинающиеся с "sqlite_", зарезервированы для внутреннего использования. Ошибка создания таблицы с именем, начинающимся с "sqlite _".

Ответ 4

Per Clemens в списке рассылки sqlite-users:

Все разрешено, кроме имен, начинающихся с "sqlite _".

CREATE TABLE "TABLE"("#[email protected]""'☺\", "");

Вы можете использовать ключевые слова ( "ТАБЛИЦА" ), специальные символы ( "#! @" "'☺\" ) и даже пустую строку ( "" ).