program tip

SQLite에서 유효한 테이블 이름은 무엇입니까?

radiobox 2020. 11. 11. 19:43
반응형

SQLite에서 유효한 테이블 이름은 무엇입니까?


SQLite에서 유효한 테이블 이름의 문자 조합은 무엇입니까? 모든 영숫자 조합 (AZ, az 및 0-9)이 유효한 이름을 구성합니까?

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

영숫자와 대시 "-"및 마침표 "."의 조합은 어떻습니까? 이것도 유효합니까?

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

감사합니다.


이에 대한 참조를 찾지 못했지만 괄호를 사용하지 않고 유효한 테이블 이름은 숫자로 시작하지 않는 영숫자 조합이어야합니다.

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_"로 시작하는 이름으로 테이블을 생성하려고하면 오류가 발생합니다.


sqlite-users 메일 링리스트의 클레멘스 당 :

"sqlite_"로 시작하는 이름을 제외하고 모든 것이 허용됩니다.

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

키워드 ( "TABLE"), 특수 문자 ( ""#! @ "" '☺ \ ") 및 빈 문자열 (" ")도 사용할 수 있습니다.

참고 URL : https://stackoverflow.com/questions/3694276/what-are-valid-table-names-in-sqlite

반응형