You have an error in your SQL syntax; check the manual thatcorresponds to your MYSQL server version for the right syntax to use near '블라블라'
이것은 무슨 에러일까? [너으 문법이 틀렸다.] 라는 뜻이다.나같은 경우,select * from imgtable where key=#key#이 문장에서 에러가 났었다.암만 검색해봐도 콜론이나 세미콜론이 문제라거나 그냥 문법오류입니다 ㅎㅎ 하는 블로그 뿐이라 답답해서 직접 해결하고 여기에
적고있다.
맞는말이다. 문법오류. 맞는 말인데 뭐가 문법오류라는지 모르겠는 나같은 사람을 위해 이곳에 설명하려고 한다.
저 SQL문의 뜻은 이렇다. 'imgtable 이라는 테이블에서 key라는 컬럼의 값이 #key# 인 것을 전부 가져오너라 이놈아' 하는 뜻이다.
핵심만 말하자면 key 가 문제다. DB의 컬럼명은 예약어를 피해서 작성해야한다.. 시바 key가 예약어일줄 몰랐짘ㅋㅋㅋㅋ
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 |
출처 : 제타위키
오라클의 예약어
ACCESS
ADD *
ALL *
ALTER *
AND *
ANY *
AS *
ASC *
AUDIT
BETWEEN *
BY *
CHAR *
CHECK *
CLUSTER
COLUMN
COMMENT
COMPRESS
CONNECT *
CREATE *
CURRENT *
DATE *
DECIMAL *
DEFAULT *
DELETE *
DESC *
DISTINCT *
DROP *
ELSE *
EXCLUSIVE
EXISTS
FILE
FLOAT *
FOR *
FROM *
GRANT *
GROUP *
HAVING *
IDENTIFIED
IMMEDIATE *
IN *
INCREMENT
INDEX
INITIAL
INSERT *
INTEGER *
INTERSECT *
INTO *
IS *
LEVEL *
LIKE *
LOCK
LONG
MAXEXTENTS
MINUS
MLSLABEL
MODE
MODIFY
NOAUDIT
NOCOMPRESS
NOT *
NOWAIT
NULL *
NUMBER
OF *
OFFLINE
ON *
ONLINE
OPTION *
OR *
ORDER *
PCTFREE
PRIOR *
PRIVILEGES *
PUBLIC *
RAW
RENAME
RESOURCE
REVOKE *
ROW
ROWID
ROWNUM
ROWS *
SELECT *
SESSION *
SET *
SHARE
SIZE *
SMALLINT *
START
SUCCESSFUL
SYNONYM
SYSDATE
TABLE *
THEN *
TO *
TRIGGER
UID
UNION *
UNIQUE *
UPDATE *
USER *
VALIDATE
VALUES *
VARCHAR *
VARCHAR2
VIEW *
WHENEVER *
WHERE
WITH *
오라클 예약어는 https://docs.oracle.com/cd/B19306_01/server.102/b14200/ap_keywd.htm#i690190 에서 복붙했는데,
*이 무슨 의미인지는 다음에 알아본다.
이거 외우면 편하기야하겠지만 컬럼명을 일정한 규칙으로 짜면 신경 덜 쓸 수 있다. 예를들어서,
key를 쓰고싶다. 여기에는 유저의 key를 담고싶다. 그러면 user_key 이런식으로.
귀찮다고? 컴퓨터는 당신의 귀찮음따위 신경안쓴다 하하
_________________________________________________
2023.03.09
이 글에 대한 검색 유입이 엄청 나다..
예약어가 좀 빡치긴해...
'정리 > 자바' 카테고리의 다른 글
CKEDITER 4 이미지 업로드 문제 (0) | 2018.12.14 |
---|---|
SVN에서 프로젝트를 Check Out 했는데 이상했다. (1) | 2018.10.10 |
소켓 프로토콜을 왜 만들어야하죠? 1탄 (0) | 2018.06.25 |
웹 접근성에 대해 첨 알았음. (0) | 2018.05.30 |
서버에 war 올렸는데 500 에러를 뱉어낸다. (0) | 2018.05.04 |