복붙노트

[SQL] MySQL의 테이블 이름에 특수 문자

SQL

MySQL의 테이블 이름에 특수 문자

다음과 같이 나는 테이블을 생성 :

CREATE TABLE IF NOT EXISTS 'e!' (
`aa` int(11) unsigned NOT NULL auto_increment,
`showName` TEXT NOT NULL default '',
`startDateTime` DATETIME NOT NULL default '',
`endDateTime` DATETIME NOT NULL default '',
PRIMARY KEY  (`aa`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8

그런 다음 쿼리를 삽입하려고 :

INSERT INTO e! (showname, startDateTime, endDateTime) VALUES('E! News ', '2012-05-03 19:00:00', '2012-05-03 20:00:00')

그리고 때문에에 그 오류! 테이블 이름에, 나는 있으리라 믿고있어! MySQL의에서 특수 문자입니다. 나는 그것을 탈출을 시도하지만, 쿼리는 여전히 실패했습니다.

그래서, 같은 특수 문자를 가질 수 있습니다! 또는 테이블 이름에? 그렇다면, 나는 아마 어떻게 든 그들을 인코딩해야?

감사.

해결법

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

    1.백 틱으로 모호한 또는 "특별한"테이블 이름을 인용 :

    백 틱으로 모호한 또는 "특별한"테이블 이름을 인용 :

    INSERT INTO `e!` ...
    

    또는 더 나은, 이러한 문제를 방지하기 위해 테이블 ​​이름에 특수 문자를 사용하지 마십시오.

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

    2.당신이 할 수없는 문서에 따르면 :

    당신이 할 수없는 문서에 따르면 :

    출처 : http://dev.mysql.com/doc/refman/5.5/en/identifiers.html

  3. ==============================

    3.이것으로 시도 :

    이것으로 시도 :

        CREATE TABLE IF NOT EXISTS `e!` (
    `aa` int(11) unsigned NOT NULL auto_increment,
    `showName` TEXT NOT NULL default '',
    `startDateTime` DATETIME NOT NULL ,
    `endDateTime` DATETIME NOT NULL ,
    PRIMARY KEY  (`aa`)
    ) ENGINE=MyISAM  DEFAULT CHARSET=utf8
    
  4. ==============================

    4.당신 즉, 데이터베이스 아키텍처 및 / 또는 이해 데이터베이스 아키텍처에 뭔가 잘못이 특별한 어떤 테이블 식별자에 대한 요구 사항이있는 경우.

    당신 즉, 데이터베이스 아키텍처 및 / 또는 이해 데이터베이스 아키텍처에 뭔가 잘못이 특별한 어떤 테이블 식별자에 대한 요구 사항이있는 경우.

    당신은 더 나은 대신 바보 식별자를 시행 이러한 건축 실수를 수정 것

  5. ==============================

    5.당신은 전자 주위에 백 틱 필요!

    당신은 전자 주위에 백 틱 필요!

    또한, 당신의 날짜 시간이 해결하는 날짜에 기본값이 필요합니다.

  6. ==============================

    6.출처 : https://dev.mysql.com/doc/refman/8.0/en/identifiers.html

    출처 : https://dev.mysql.com/doc/refman/8.0/en/identifiers.html

  7. ==============================

    7.이 개체 이름입니다 MySQL을위한 표준. 그것을 따르면 당신은 사용할 수 없습니다 "!" 테이블 이름의 일부로 기호.

    이 개체 이름입니다 MySQL을위한 표준. 그것을 따르면 당신은 사용할 수 없습니다 "!" 테이블 이름의 일부로 기호.

  8. from https://stackoverflow.com/questions/10443050/special-characters-in-mysql-table-name by cc-by-sa and MIT license