[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.당신은 여전히 당신이 원하는 경우 키를 사용할 수 있습니다. 그냥 역 따옴표로 포장,
당신은 여전히 당신이 원하는 경우 키를 사용할 수 있습니다. 그냥 역 따옴표로 포장,
CREATE TABLE IF NOT EXISTS users ( `key` INT PRIMARY KEY NOT NULL AUTO_INCREMENT, username VARCHAR(50) NOT NULL, );
그러나 조언으로, 피할 미래 문제에 대한 예약 된 키워드를 사용 자제. :)
-
==============================
2.간단한 해결책 : 모든 이름에 후행 밑줄을 추가합니다.
간단한 해결책 : 모든 이름에 후행 밑줄을 추가합니다.
는 SQL 사양 SQL : 2011 명시 적으로 결코에 약속도 현재도 미래에 어떤 키워드에 후행 밑줄을 사용합니다.
예 : KEY_
비슷한 질문에 내 대답을 참조 H2 데이터베이스 열 이름은 예약 된 단어입니다.
from https://stackoverflow.com/questions/15725233/using-reserved-words-in-column-names by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] 두 테이블 구조의 차이점 (0) | 2020.05.16 |
---|---|
[SQL] 최적화 GroupWise에 최대 쿼리 (0) | 2020.05.16 |
[SQL] ColdFusion에서 - 변수 필드 이름은 데이터베이스 쿼리 결과를 통해 반복 할 때 (0) | 2020.05.16 |
[SQL] PostgreSQL는 WHERE 절에 열 별칭을 허용하지 않습니다 (0) | 2020.05.16 |
[SQL] INNER는 DB2에 대한 업데이트는 SQL에 가입하세요 (0) | 2020.05.16 |