반응형
서론


db를 읽는중에 ERROR 1064 (42000)이 발생했다...
오타도 없었고 급한건 아니니 대수럽지않게 넘겼는데 똑같은 필드명을 가진 곳에서 또 똑같이 에러가 발생했다.
가만보니 필드명이 desc...?
아... 예약어였다...
예약어란?
이미 문법적인 용도로 사용되고 있기 때문에 식별자로 사용할 수 없는 단어
MySQL 예약어
| ADD | ALL | ALTER |
| ANALYZE | AND | AS |
| ASC | ASENSITIVE | BEFORE |
| BETWEEN | BIGINT | BINARY |
| BLOB | BOTH | BY |
| CALL | CASCADE | CASE |
| CHANGE | CHAR | CHARACTER |
| CHECK | COLLATE | COLUMN |
| CONDITION | CONSTRAINT | CONTINUE |
| CONVERT | CREATE | CROSS |
| CURRENT_DATE | CURRENT_TIME | CURRENT_TIMESTAMP |
| CURRENT_USER | CURSOR | DATABASE |
| DATABASES | DAY_HOUR | DAY_MICROSECOND |
| DAY_MINUTE | DAY_SECOND | DEC |
| DECIMAL | DECLARE | DEFAULT |
| DELAYED | DELETE | DESC |
| DESCRIBE | DETERMINISTIC | DISTINCT |
| DISTINCTROW | DIV | DOUBLE |
| DROP | DUAL | EACH |
| ELSE | ELSEIF | ENCLOSED |
| ESCAPED | EXISTS | EXIT |
| EXPLAIN | FALSE | FETCH |
| FLOAT | FLOAT4 | FLOAT8 |
| FOR | FORCE | FOREIGN |
| FROM | FULLTEXT | GRANT |
| GROUP | HAVING | HIGH_PRIORITY |
| HOUR_MICROSECOND | HOUR_MINUTE | HOUR_SECOND |
| IF | IGNORE | IN |
| INDEX | INFILE | INNER |
| INOUT | INSENSITIVE | INSERT |
| INT | INT1 | INT2 |
| INT3 | INT4 | INT8 |
| INTEGER | INTERVAL | INTO |
| IS | ITERATE | JOIN |
| KEY | KEYS | KILL |
| LEADING | LEAVE | LEFT |
| LIKE | LIMIT | LINES |
| LOAD | LOCALTIME | LOCALTIMESTAMP |
| LOCK | LONG | LONGBLOB |
| LONGTEXT | LOOP | LOW_PRIORITY |
| MATCH | MEDIUMBLOB | MEDIUMINT |
| MEDIUMTEXT | MIDDLEINT | MINUTE_MICROSECOND |
| MINUTE_SECOND | MOD | MODIFIES |
| NATURAL | NOT | NO_WRITE_TO_BINLOG |
| NULL | NUMERIC | ON |
| OPTIMIZE | OPTION | OPTIONALLY |
| OR | ORDER | OUT |
| OUTER | OUTFILE | PRECISION |
| PRIMARY | PROCEDURE | PURGE |
| READ | READS | REAL |
| REFERENCES | REGEXP | RELEASE |
| RENAME | REPEAT | REPLACE |
| REQUIRE | RESTRICT | RETURN |
| REVOKE | RIGHT | RLIKE |
| SCHEMA | SCHEMAS | SECOND_MICROSECOND |
| SELECT | SENSITIVE | SEPARATOR |
| SET | SHOW | SMALLINT |
| SONAME | SPATIAL | SPECIFIC |
| SQL | SQLEXCEPTION | SQLSTATE |
| SQLWARNING | SQL_BIG_RESULT | SQL_CALC_FOUND_ROWS |
| SQL_SMALL_RESULT | SSL | STARTING |
| STRAIGHT_JOIN | TABLE | TERMINATED |
| THEN | TINYBLOB | TINYINT |
| TINYTEXT | TO | TRAILING |
| TRIGGER | TRUE | UNDO |
| UNION | UNIQUE | UNLOCK |
| UNSIGNED | UPDATE | USAGE |
| USE | USING | UTC_DATE |
| UTC_TIME | UTC_TIMESTAMP | VALUES |
| VARBINARY | VARCHAR | VARCHARACTER |
| VARYING | WHEN | WHERE |
| WHILE | WITH | WRITE |
| XOR | YEAR_MONTH | ZEROFILL |
필드명이 예약어일 경우 보는 방법!!
1. 별칭(alias)를 이용한 처리방법
select a.desc from 테이블명 as a

2. 백틱( ` )을 이용한 처리방법
select `desc` from 테이블명

반응형
'Database' 카테고리의 다른 글
| [DB] Database 정규화 (1NF,2NF,3NF,BCNF) 👨💻 (0) | 2023.02.07 |
|---|---|
| [SQL] 삭제하기! (DELETE, TRUNCATE, DROP) (0) | 2023.02.02 |
| [SQL] 데이터 타입(Data Type) (0) | 2023.01.12 |
| [SQL] 테이블의 구조와 설명을 알 수 있는 desc!! (0) | 2023.01.11 |
| [SQLD] 엔터티(ENTITY), 속성(ATTRIBUTE), 관계(RELATION) (0) | 2022.09.02 |
댓글