Posted on 2007-04-22 23:34 
qiyadeng 阅读(2894) 
评论(1)  编辑  收藏  
			
			
		 
		   今天在调试程序中发现类似下面这种错误
- 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
找了半天也没发现是什么错误,搜索多数认为是 hbm.xml中catalog中引起的问题,但我检查了发现不是配置文件引起的问题。后来联想到是不是MySQL的保留字的问题,找到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 |