mysql中的保留字段產(chǎn)生的問(wèn)題
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server versio····這句話對(duì)于咱們并不陌生,無(wú)非就是多了“,”之類的問(wèn)題。但是你如果無(wú)意之中添加了一個(gè)mysql中的保留字段作為數(shù)據(jù)庫(kù)中存貯的字段名,悲劇就這樣發(fā)生了。
前幾天因?yàn)楣δ艿呐R時(shí)變更,需要給數(shù)據(jù)表添加一個(gè)字段用來(lái)區(qū)別導(dǎo)入的批次,我就在mysql中添加了group字段,沒(méi)想到我的噩夢(mèng)就此展開(kāi)·····
本來(lái)程序已經(jīng)接近收尾,本想著今早來(lái)公司給程序來(lái)個(gè)歡樂(lè)的結(jié)尾,沒(méi)想到····每次導(dǎo)入excel表總是提示我sql語(yǔ)句錯(cuò)誤,我變?cè)趕ql語(yǔ)句上添添減減,也沒(méi)有把錯(cuò)誤搞定,整整一個(gè)上午外加下午兩個(gè)小時(shí),簡(jiǎn)直已經(jīng)到了抓狂的程度。簡(jiǎn)直要跪地苦思冥想,但是還是沒(méi)有搞定這個(gè)錯(cuò)誤。
把問(wèn)題放在一邊,繼續(xù)搞其他的東西····當(dāng)在寫一個(gè)group by 語(yǔ)句時(shí),突然意識(shí)到,group 是mysql的一個(gè)保留字,就此問(wèn)題迎刃而解。切記切記,多么痛的領(lǐng)悟啊
mysql的保留字段
在MySQL中,下表中的字顯式被保留。其中大多數(shù)字進(jìn)制被標(biāo)準(zhǔn)SQL用作列名和/或表名(例如,GROUP)。少數(shù)被保留了,因?yàn)镸ySQL需要它們,在MySQL中,當(dāng)表名或字段名乃至數(shù)據(jù)庫(kù)名和保留字沖突時(shí),在sql語(yǔ)句里可以用撇號(hào)()括起來(lái),當(dāng)讓我們一般都盡量少使用這些保留的字段。
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 | CONNECTION | 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 |
GOTO | 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 | LABEL |
LEADING | LEAVE | LEFT |
LIKE | LIMIT | LINEAR |
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 | RAID0 | RANGE |
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 |
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 | X509 |
XOR | YEAR_MONTH | ZEROFILL |
相關(guān)文章
Mysql 的存儲(chǔ)引擎,myisam和innodb的區(qū)別
這篇文章主要介紹了Mysql 的存儲(chǔ)引擎,myisam和innodb的區(qū)別,需要的朋友可以參考下2014-12-12Mysql合并結(jié)果接橫向拼接字段的實(shí)現(xiàn)步驟
這篇文章主要給大家介紹了關(guān)于Mysql合并結(jié)果接橫向拼接字段的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-01-01mysql一條sql查出多個(gè)條件不同的sum或count問(wèn)題
這篇文章主要介紹了mysql一條sql查出多個(gè)條件不同的sum或count問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-05-05Mysql樹(shù)形遞歸查詢的實(shí)現(xiàn)方法
這篇文章主要給大家介紹了關(guān)于Mysql樹(shù)形遞歸查詢的實(shí)現(xiàn)方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-02-02Mybatis動(dòng)態(tài)傳入order?by問(wèn)題
這篇文章主要介紹了Mybatis動(dòng)態(tài)傳入order?by問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-12-12