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



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



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


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



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


спасибо.

877   4  

4 ответов:

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

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

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

От SQLite документация по созданию таблицы, запрещены только те имена, которые начинаются с sqlite_:

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

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

разрешено все, кроме имен, начинающихся с "sqlite_".

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

вы можете использовать ключевые слова ("таблица"), специальные символы (""#!@""'☺\"), и даже пустая строка ("").

Comments

    Ничего не найдено.