`

MySQL保留字

阅读更多

对DAO进行单位测试控制台报错:
org.hibernate.AssertionFailure: null id in xxx.xxx.xxx..model.MemKey entry (don't flush the Session after an exception occurs)

通过Navicat直接执行SQL语句报错,且key显示为蓝色:

INSERT INTO mem_key (prefix,site_id,user_id,suffix,key,expiration_time,create_time) VALUES(NULL,NULL,NULL,NULL,NULL,NULL,NULL);
[Err] 1064 - 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 'key,expiration_time,create_time) VALUES(NULL,NULL,NULL,NULL,NULL,NULL,NULL)' at line 1

 由此断定问题的原因是字段名和MySQL的保留字冲突了

MySQL5.5保留字见如下表格:

 

MySQL 5.5.44中的保留字
ACCESSIBLE 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
LINEAR LINES LOAD
LOCALTIME LOCALTIMESTAMP LOCK
LONG LONGBLOB LONGTEXT
LOOP LOW_PRIORITY MASTER_SSL_VERIFY_SERVER_CERT
MATCH MAXVALUE 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 RANGE READ
READS READ_WRITE REAL
REFERENCES REGEXP RELEASE
RENAME REPEAT REPLACE
REQUIRE RESIGNAL RESTRICT
RETURN REVOKE RIGHT
RLIKE SCHEMA SCHEMAS
SECOND_MICROSECOND SELECT SENSITIVE
SEPARATOR SET SHOW
SIGNAL 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 XOR YEAR_MONTH
ZEROFILL    
     
MySQL 5.5中的保留字
GENERAL IGNORE_SERVER_IDS MASTER_HEARTBEAT_PERIOD
MAXVALUE RESIGNAL SIGNAL
SLOW    

 

参见:http://dev.mysql.com/doc/refman/5.5/en/reserved-words.html

分享到:
评论

相关推荐

    MySQL的保留字.pdf

    MySQL数据库中的保留字是指在数据库中具有特殊意义和用途的单词,它们被用于SQL语句中,以执行特定的操作或作为命令的关键字。这些保留字不能用作表名、列名或其他对象的名称。保留字通常用于执行数据查询、定义数据...

    数据库关键字保留字大全

    MySQL保留字列表包括: * ALTER * ANALYZE * AND * AS * ASC * AUTO_INCREMENT * AVG SQL Server保留字 SQL Server是微软公司开发的一种关系数据库管理系统。SQL Server的保留字主要包括以下几个方面: * 数据...

    MySQL 5.7中的关键字与保留字详解

    在MySQL 5.7中,了解关键字和保留字对于编写有效的SQL语句至关重要。这些关键字是SQL语言中具有特殊含义的单词,它们用于定义数据库结构、查询数据、更新记录等操作。保留字则是那些不能直接作为数据库对象名称(如...

    MySQL中字段名和保留字冲突的解决办法

    若真的这么写,必然出错,当字段名与MySQL保留字冲突时,可以用字符“`”将字段名括起来: 代码如下:select `from` from table; 总结 刚发现我原先设计的数据库表里有两个字段都用了保留字(add,comment)。在...

    MySQL数据库设计、优化

    2. **保留字避免**:不要使用MySQL保留字作为对象名称。 3. **语言风格统一**:命名应全英文或全中文,避免混用。 4. **前缀/后缀使用**:对于临时表添加`tmp`或`temp`作为前缀/后缀;统计表添加`stat`或`statistic`...

    常用数据库保留字列表

    例如,MySQL、Oracle、SQL Server和PostgreSQL等都有各自的保留字集。在Excel表格中,这些保留字可能会按照数据库类型分类,便于用户根据需要查找。 在实际工作中,开发者应遵循以下几点来避免与保留字冲突: 1. ...

    验证SQL保留字

    例如,在MySQL中,你可以尝试将疑似保留字作为表名创建,如果报错,那么它很可能就是保留字。 在编写SQL脚本时,我们常常会遇到需要使用与保留字相同或相似的单词,这时可以采用以下策略来避免冲突: 1. 使用双引号...

    腾讯MySQL使用规范

    同时,禁止使用MySQL保留字,并且建议命名长度不超过32个字符,各部分之间使用下划线连接。对于临时库和备份库,也有相应的前缀和后缀的命名规则。 基础规范强调了数据库的存储引擎、字符集、主键设计、注释添加...

    深入浅出MySQL数据库1

    - 若需使用MySQL保留字作为数据库名、表名或字段名时,需使用反引号 `` ` `` 包围。 - **常用SQL语句**: - `SELECT USER()`:获取当前登录用户。 - `SELECT VERSION()`:获取MySQL版本信息。 - `SELECT NOW()`...

    去哪儿MySQL开发规范

    5. **禁止使用MySQL保留字**:使用保留字作为名称可能会导致语法错误或其他问题,因此需避免此类情况发生。 6. **临时库/表命名规则**:临时库或表的名称应以 `tmp` 为前缀,并以日期为后缀(如 `tmp_test01_0704`...

    MYSQL数据库设计规范.docx

    库名、表名、字段名禁止使用MySQL保留字** - **级别**: 强制 - **原因**: 使用保留字会增加SQL语句的复杂度,导致编写和维护变得更加困难。 **4. 临时库、表名必须以tmp为前缀** - **级别**: 强制 - **原因**:...

    某行MySQL数据库开发规范

    - **避免MySQL保留字**:例如`call`、`group`等。 - **全部使用小写字母**:保持一致性和易于区分。 **2.2 表命名** - **库名、表名、字段名需见名知意**:推荐使用名词而非动词。 - **避免MySQL保留字**:如`...

    MySQL夺命连环问面试题分享给需要的同学.docx

    11. 避免使用MySQL保留字 12 不搞外键关联,一般都在代码维护 13. 一般都选择INNODB存储引擎 14. 选择合适统一的字符集。 15. 如果你的数据库字段是枚举类型的,需要在comment注释清楚 16.时间的类型选择 17.不建议...

    MYSQL开发规范总结

    - 原则:使用有意义的英文词汇,用下划线分隔,仅限字母、数字和下划线,避免MySQL保留字,所有对象名使用小写。 - 数据库命名:不超过30个字符。 - 表命名:模块相关的表使用相同前缀,清晰表达表的含义,用...

    去哪儿MySQL SQL开发手册

    同时,禁止使用MySQL保留字作为库名、表名或字段名,并为临时库和备份库制定了特定的命名规则,例如临时库以tmp为前缀,并以日期为后缀;备份库以bak为前缀,同样以日期为后缀。 基础规范方面,手册推荐使用InnoDB...

    MySQL数据库开发规范1.3.doc

    - **总则**:所有数据库对象名应使用小写字母、数字和下划线,且以字母开头,避免使用MySQL保留字,多词之间用下划线分隔,长度受限时使用简写或缩写。 - **数据库命名**:以"db_"前缀加站点名再加应用名。 - **...

    mysql 开发规范.docx

    - 对象命名避免使用MySQL保留字。 - 多个单词之间使用下划线分隔。 - 对象名称过长时,可以使用简写或缩写。 2. **数据库命名**: - 命名格式为`db_站点名_应用名称`。 3. **表命名**: - 同一模块下的表使用...

    58赶集MySQL交流.pdf

    同时建议库名、表名、字段名不超过32个字符,避免使用MySQL保留字,并且有专用前缀来区分临时库、备份库和普通库表。 库表规范:这部分介绍了具体的存储引擎选择、表注释的必要性、分区表的使用限制、表结构设计的...

Global site tag (gtag.js) - Google Analytics