필자는 필요에 따라 새로운 테이블을 동적으로 생성하는 프로그램을 생각하고 있습니다. MySQL에 숫자로만 이름이 지정된 테이블을 가질 수 있습니까? MySQL의에서 테이블, 객체를 명명 포함한MySQL에서 테이블 이름으로 숫자를 사용할 수 있습니까?
답변
규칙 :
http://dev.mysql.com/doc/refman/5.1/en/identifiers.html
식별자가 숫자로 시작하지만 숫자만을 을 구성하지 않을 수 있습니다 인용하지 않는 수 있습니다.
SELECT * FROM 12345;
그러나 다음은 유효한 것 :
그래서 이것은 잘못된 것
SELECT * FROM `12345`;
또는 ANSI 모드에서 실행은 다음이 작동 할 경우 :
SET @@session.sql_mode=ANSI_QUOTES;
SELECT * FROM "12345";
카림 (Karim)과 스티브 웨이 (Steve Weet)가 지적한 바, 예, 당신은 수 있지만,이처럼 인용해야합니다 :
SELECT * FROM `3516`
나는 아마 비록 스크립트를 재검토 제안 있을까요? 접두사 추가 : "t3516"이라는 테이블은 "3516"처럼 혼란스럽지 않습니다.
또한, 당신은 어떤 숫자가 아닌 문자를 사용할 수를 변환 할 수 있습니다 :
table 0 - t_a
table 1 - t_b
table 2 - t_c
table 25 - t_z
table 26 - t_aa
table 27 - t_ab
... etc
만큼 당신이 테이블 이름을 인용하는데주의를 기울여야으로, karim79에 의해 주어진 대답은 '예'입니다. 물론 접두사에 numer를 사용할 수 있습니다. mytable1, mytable2, ...; 따옴표없이 작동 할 것입니다.
그런데 왜 그렇게 많은 테이블을 만들지 생각해야합니다. 허용되는 일을하는 방법은 모두가 한 테이블에 속하도록하는 것입니다. 따라서 table1, table2 ...를 사용하는 것보다 하나의 테이블을 사용하고 열에 숫자를 저장하십시오.
그건 자연스러운 방법입니다. 당신의 일을하는 방식은 쉽게 많은 문제를 야기 할 수 있습니다 (DB 스키마 변경은 백업에 문제가 많고 많은 테이블 때문에 다른 툴이 DB로 작업하기 어렵고 모든 테이블에 스키마 변경이 필요합니다). 동적으로 런타임에 스키마를 변경하는 것은 좋은 생각이 아닙니다.
확실하지. 응답은 매번 식별자를 이스케이프 처리하는 한 확실히 예입니다. 또한, 테이블 이름이 자동으로 생성되는 데이터베이스의 정수인 경우가 많이 있습니다. – techdude
@techdude : "번호가 매겨진 테이블"이있는 데이터베이스를 한번도 본 적이 없습니다. 너 어디서 봤니? 왜 그들은 사용 되었습니까? 나는 호기심이 ... – sleske
특정 위치는 중요하지 않습니다 (또는 공개). 핵심은 테이블 이름에 숫자를 사용할 수 있다는 것입니다. asker의 질문에 더 부응하기 위해 하나의 가능한 사용은 사용자가 만든 새 테이블 (각 테이블에 대한 다른 정보가있을 수 있음)과 각 행이 일치하는 자동 증가 정수 열을 갖는 마스터 테이블을 사용하는 것입니다 작성되는 테이블의 정수 이 경우 정수형 테이블 이름 (및 해당 컬럼 이름)이 모든 주요 DBMS에서 지원되므로 문자열을 만들 필요가 없습니다. – techdude
나는 그것이 더 혼란스럽고 기억하기 어려울 것입니다. 테이블 이름은 저장중인 데이터와 관련이 있어야합니다. 더 나은 습관입니다.
숫자가 순수한 경우 백틱 (`)을 사용하여 테이블 이름을 인용하십시오. 그것은
- 1. MySQL - 테이블 이름으로 열을 사용할 수 있습니까?
- 2. MySQL에서 GRANT의 테이블 이름에 와일드 카드를 사용할 수 있습니까?
- 3. Java에서 변수를 변수 이름으로 사용할 수 있습니까?
- 4. Ninject ConstructorArguments를 강력한 이름으로 사용할 수 있습니까?
- 5. ID를 변수 이름으로 사용할 수 있습니까?
- 6. MySQL에서 인덱스 된 뷰를 사용할 수 있습니까?
- 7. MySQL에서 ADO.NET DbProviderFactory를 어떻게 사용할 수 있습니까?
- 8. 테이블 필드에 하이픈을 사용할 수 있습니까?
- 9. 다른 이름으로 테이블 내보내기
- 10. mysql에서 테이블 생성
- 11. MySQL에서 종속 테이블 결정?
- 12. 단일 테이블 상속에 사용할 수 있습니까?
- 13. div ID 안에 부동 소수점 숫자를 사용할 수 있습니까?
- 14. PHP 5.3에서 메소드 이름으로 new를 사용할 수 있습니까?
- 15. 어떻게 Perl 변수 이름으로 변수의 값을 사용할 수 있습니까?
- 16. C++에서 문자열 리터럴을 매크로 이름으로 사용할 수 있습니까?
- 17. MySQL에서 세 테이블 조인
- 18. Axapta : AOT에서 이름으로 테이블 찾기
- 19. mysql에서 float으로 형식화 된 숫자를 구문 분석합니다.
- 20. mysql에서 WHERE 절과 함께 REPLACE를 사용할 수 있습니까? 같은
- 21. MySQL에서 언제 어떻게 SLEEP()을 올바르게 사용할 수 있습니까?
- 22. mysql에서 고유 일련 번호를 보장 할 수 있습니까?
- 23. mysql에서 변수를 사용할 수 없습니다. 선택
- 24. 테이블 이름으로 사용되는 열의 값
- 25. 어떻게 mysql에서 데이터베이스의 이름을 바꿀 수 있습니까?
- 26. MySQL에서 특정 테이블 만 덤프하는 방법은 무엇입니까?
- 27. MySQL에서 잠금없이 전체 테이블 업데이트
- 28. MySQL에서 동적으로 관리되는 테이블 삭제
- 29. MySQL에서 테이블 기본 키 제거
- 30. MySQL에서 테이블 이름의 최대 길이
해당 문서에서 관련 부분 것은 아마도 키보드의 ESC 버튼 아래에이 일 "식별자는 숫자로 시작할 수 있지만, 인용하지 않는 한 단독 숫자로 구성 할 수 없습니다."당신이 무슨 뜻인지 –