qiyadeng

          專注于Java示例及教程
          posts - 84, comments - 152, trackbacks - 0, articles - 34

          注意MySQL的保留字陷阱

          Posted on 2007-04-22 23:34 qiyadeng 閱讀(2887) 評(píng)論(1)  編輯  收藏

             今天在調(diào)試程序中發(fā)現(xiàn)類似下面這種錯(cuò)誤

          - SQL Error: 1064, SQLState: 42000- You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'REQUIRE, PLAN_DATE, COMPILE, AUDITOR, AGREE_PERSON, AGREE_DATE, ADD_BY, MOD_BY, ' at line 1- Could not synchronize database state with sessionorg.hibernate.exception.SQLGrammarException: Could not execute JDBC batch update


          找了半天也沒(méi)發(fā)現(xiàn)是什么錯(cuò)誤,搜索多數(shù)認(rèn)為是 hbm.xml中catalog中引起的問(wèn)題,但我檢查了發(fā)現(xiàn)不是配置文件引起的問(wèn)題。后來(lái)聯(lián)想到是不是MySQL的保留字的問(wèn)題,找到http://dev.mysql.com/doc/refman/5.1/zh/language-structure.html#reserved-words,果然是。
          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 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

          Feedback

          # re: 注意MySQL的保留字陷阱  回復(fù)  更多評(píng)論   

          2007-04-23 01:15 by 山風(fēng)小子
          這個(gè)問(wèn)題我也遇到過(guò),花了好長(zhǎng)時(shí)間才發(fā)現(xiàn)問(wèn)題的根源的 :)

          只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 冀州市| 竹溪县| 平阴县| 石楼县| 商水县| 同江市| 凤翔县| 长乐市| 清原| 怀宁县| 托克逊县| 兴山县| 张掖市| 海盐县| 嘉禾县| 佛学| 棋牌| 尖扎县| 布尔津县| 丰台区| 淮滨县| 麻栗坡县| 福贡县| 崇州市| 岑巩县| 桂东县| 五常市| 运城市| 东城区| 遵义县| 江油市| 横峰县| 阜城县| 威信县| 绩溪县| 蓝山县| 黔南| 五大连池市| 岑溪市| 基隆市| 天台县|