2012-02-26 4 views
1

데이터베이스의 테이블 이름에 심볼을 사용할 수 있습니까? 예를 들어, MySQL 데이터베이스의 테이블 명명 규칙

$tablename 
%tablename 

나는 선택 쿼리 테스트하고 확인을 보인다하지만 난 그것을 할 안전한지, 그래서 그냥 알고 싶어하기 전에 누군가가 그 일을 보지 못했다.

SELECT * FROM $tablename // returns result. 
SELECT * FROM %tablename // returns result. 

답변

3

documentation on valid identifiers.을 참조하십시오. 이들을 사용할 수 있지만, %을 포함하는 테이블 또는 열 이름을 인용해야합니다 (최소한 설명서에 따라). $은 인용 부호가없는 식별자에서 유효하지만 %은 유효하지 않습니다. 인용되지 않은 식별자에서

허용 문자 :

  • ASCII : [0-9, AZ, AZ $ _ (기본 라틴 문자, 숫자 0-9, 달러, 밑줄)
  • 확장 : + 0080 U .. U + FFFF

인용 식별자의 문자는 전체 유니 코드 기본 다국어 평면 (BMP), U +를 제외하고 0000을 포함 허용 :

  • ASCII : U + 0001 .. U + 007F
  • 확장 : + 0080 U ... U는 + FFFF

그래서, 그렇게하는 것이 일반적으로 안전하지만, 당신이 필요합니다 MySQL 5.0 Reference Manual 따르면

SELECT * FROM `%tablename` 
+0

감사합니다. Micheal에게 답변 해주세요. :) – laukok

1

같은 인용 식별자와 일치 :

    인용되지 않은 식별자에서개
  • 허용 문자 :

    ASCII : [0-9, AZ, AZ는 $ _] (기본 라틴어 문자, 숫자 0-9, 달러, 밑줄)

    확장 : U + 0080 .. U + FFFF

  • 인용 식별자의 문자는 전체 유니 코드 기본 다국어 평면 (BMP), U +를 제외하고 0000 포함 허용 :

    ASCII : U + 0001를 .. U + 007F

    확장 : U + 0080 .. U + FFFF

  • 식별자는 숫자로 시작될 수 있지만 인용 부호가 숫자로만 구성되지 않을 수 있습니다.

  • 데이터베이스, 테이블 및 열 이름은 공백으로 끝날 수 없습니다.

  • 데이터베이스 이름과 테이블 이름에는 "/", "\", "."또는 파일 이름에서 허용되지 않는 문자를 사용할 수 없습니다.를 참조 할 때 인용 부호가 OK 그래서

$는, ASCII입니다 %는 역 따옴표로 인용해야한다.

+0

대답에 대해 Michele에게 감사드립니다! :) – laukok

4

빠른 답변 : 예!

데이터베이스에서 지원하는 모든 기호를 사용할 수 있지만 그렇다고해서 좋은 생각은 아닙니다.

가독성과 유용성을 위해 표준 명명 규칙을 따르는 것이 좋습니다. 온라인으로 나열되고 널리 받아 들여지고 사용되는 많은 표준 명명 규칙이 있습니다. 데이터베이스가 단독으로 작동하지 않는다는 점을 명심하십시오. 특수 문자를 지원하지 않을 수도있는 나중에 추가하려는 응용 프로그램 및 애드온과 상호 작용합니다.