복붙노트

[SQL] 열 이름에 예약어를 사용하여

SQL

열 이름에 예약어를 사용하여

이 간단한 코드입니다하지만 난 테이블의 엔티티로이 단어를 사용할 수없는 이유를 모르겠어

CREATE TABLE IF NOT EXISTS users(
key INT PRIMARY KEY NOT NULL AUTO_INCREMENT,
username VARCHAR(50) NOT NULL,
);

나는 키 사용하는 경우 내가 MySQL의 구문을 확인 부탁합니다하지만 "ID"또는 테이블이 생성됩니다 어떤 다른 사람을 사용하는 경우 "키"를 사용할 수 없습니다 깨달았다.

누구나 내가 키에 엔티티 이름을 만들 수있는 방법을 알아? 난 그냥 대신 키의 ID를 사용할 수 있습니다하지만이 오류를 발견하기 때문에 그것에게 일을 얻을 수있는 방법이 있다면 내가 볼 wonna 때문에 중요하지 뭔가.

해결법

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

    1.당신은 여전히 ​​당신이 원하는 경우 키를 사용할 수 있습니다. 그냥 역 따옴표로 포장,

    당신은 여전히 ​​당신이 원하는 경우 키를 사용할 수 있습니다. 그냥 역 따옴표로 포장,

    CREATE TABLE IF NOT EXISTS users
    (
        `key` INT PRIMARY KEY NOT NULL AUTO_INCREMENT,
        username VARCHAR(50) NOT NULL,
    );
    

    그러나 조언으로, 피할 미래 문제에 대한 예약 된 키워드를 사용 자제. :)

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

    2.간단한 해결책 : 모든 이름에 후행 밑줄을 추가합니다.

    간단한 해결책 : 모든 이름에 후행 밑줄을 추가합니다.

    는 SQL 사양 SQL : 2011 명시 적으로 결코에 약속도 현재도 미래에 어떤 키워드에 후행 밑줄을 사용합니다.

    예 : KEY_

    비슷한 질문에 내 대답을 참조 H2 데이터베이스 열 이름은 예약 된 단어입니다.

  3. from https://stackoverflow.com/questions/15725233/using-reserved-words-in-column-names by cc-by-sa and MIT license