복붙노트

[SQL] 테이블 또는 열 이름은 숫자로 시작할 수 없습니다?

SQL

테이블 또는 열 이름은 숫자로 시작할 수 없습니다?

나는 다음과 같은 구문을 사용하여 테이블 이름 15909434_user을 만들려고 :

CREATE TABLE 15909434_user ( ... )

그것은 물론 오류가 발생합니다. 나는 구글과 약간의 연구가 시도 후 다음, 내가 설명하는 여기에 좋은 기사를 발견 :

자, 이제 나는 (테이블 이름에 따옴표를 넣어)을 사용하여이 구문을이 문제를 해결하는 방법을 알고 :

CREATE TABLE "15909434_user" ( ... )

당신은 "15909434_user"또한 user_15909434으로 테이블이나 열 이름을 만들 수 있지만 테이블 또는 열 이름을 큰 따옴표를 사용하지 않고 숫자로 시작 만들 수 없습니다.

그럼, 나는 (그것이 관례 제외) 그 뒤에 이유에 대해 궁금합니다. 왜이 규칙이 적용? 이 구문 제한이나 다른 이유 같은 것을 방지하는 것입니다?

귀하의 관심에 미리 감사드립니다!

해결법

  1. ==============================

    1.그것은 간접의 여러 레이어를 통해 결국 몇 가지 중 하나입니다 식별자의 시작 블록에 도착 원래 SQL 표준에서 유래하지만, 기본적으로는 "간단한 라틴어 편지"입니다. 이 사용할 수 그것도 다른 것입니다,하지만 당신은 모든 세부 사항을 볼 http://en.wikipedia.org/wiki/SQL-92로 이동하여 실제 표준에 대한 링크를 따르십시오 (85 페이지)

    그것은 간접의 여러 레이어를 통해 결국 몇 가지 중 하나입니다 식별자의 시작 블록에 도착 원래 SQL 표준에서 유래하지만, 기본적으로는 "간단한 라틴어 편지"입니다. 이 사용할 수 그것도 다른 것입니다,하지만 당신은 모든 세부 사항을 볼 http://en.wikipedia.org/wiki/SQL-92로 이동하여 실제 표준에 대한 링크를 따르십시오 (85 페이지)

    숫자가 아닌 식별자 introducers을 갖는 것은 쉽고 빠르게 실행 디코드 SQL을 파서를 작성하게하지만, 인용 형태로도 괜찮습니다.

    파서에 대한 문제는 FROM 절보다 SELECT 목록 절에서 더 많은 것이다. 선택 목록은 테이블에서 선택하는 식의 목록이며,이 간단한 열 이름과 숫자 식을 수 있도록, 매우 유연합니다. 다음을 고려하세요:

    SELECT 2e2 + 3.4 FROM ...
    

    테이블 이름, 컬럼 이름을 수치로 시작할 수 있다면, 2E2은 열 이름 또는 유효 숫자 (E 포맷이 일반적으로 숫자 리터럴에서 허용된다)이고 테이블 "3"칼럼 "4"3.4 또는 그 수치이며 3.4?

    식별자는 간단한 라틴어 문자 (및 다른 특정 물건) 2E2를보고 파서 신속 숫자 식, 3.4과 같은 거래 될 것이 식별 할 수있는 수단을 시작하는 것이 규칙을 갖는

    이 숫자 선두 문자를 허용하는 방식을 고안 할 수있을 것입니다하지만이 규칙은 좋은 솔루션입니다, 그래서이 더욱 모호한 규칙 (의견)을 초래할 수 있습니다. 먼저 자리를 허용한다면, 그것은 항상 '깨끗한'로 논란의 여지하지 않은, 인용해야합니다.

  2. ==============================

    2.나는 그것이 문법와 함께 할 상상 것입니다.

    나는 그것이 문법와 함께 할 상상 것입니다.

    MY_TABLE 행 X 24 *을 선택 DAY_NUMBER

    (24)는 열 이름으로 허용 된 경우 미세하지만 모호합니다.

    따옴표를 추가하면 명시 적 식별자가 아닌 상수를 참조하고 의미합니다. 그것을 사용하기 위해 그래서, 당신은 항상 어쨌든 탈출해야 할 것이다.

  3. from https://stackoverflow.com/questions/15917064/table-or-column-name-cannot-start-with-numeric by cc-by-sa and MIT license