首页 数据库 mysql教程 深入理解mysql字段名和保留字冲突的问题

深入理解mysql字段名和保留字冲突的问题

Jun 01, 2016 pm 01:00 PM
mysql 保留字

这篇文章主要介绍了mysql字段名和保留字冲突的问题,有一定的参考价值,感兴趣的朋友可以参考一下,希望对你有所帮助!

建了个表,有个字段起名为key,结果insert语句报错了,说是sql不对。

建表语句如下:

CREATE TABLE `base_error_message_test` (
  `message_id` varchar(50) NOT NULL,
  `message` text ,
  `send_count` int(2) DEFAULT '0' ,
  `status` int(2) DEFAULT '0' ,
  `last_modified_date` datetime DEFAULT NULL ,
  `creation_date` datetime DEFAULT NULL ,
  `topic` varchar(50) DEFAULT NULL,
  `key` varchar(50) DEFAULT NULL,
  PRIMARY KEY (`message_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='推送失败消息记录表';

以下语句是不对的:

select key from base_error_message_test;
INSERT INTO base_error_message_test (message_id, message, send_count, status, last_modified_date, creation_date, topic, key) VALUES (.......);

原因:字段key和mysql的保留字冲突了,当mysql的字段名和保留字冲突的时候,sql语句中的字段名需要加上反引号``来加以区别,反引号可以用Esc键下面那个按键在英文模式不按shift键打出来,注意,是反引号不是单引号,回车键左边那个是单引号。

所以上面两个语句可以这样写:

select `key` from base_error_message_test;
INSERT INTO base_error_message_test (message_id, message, send_count, status, last_modified_date, creation_date, topic, `key`) VALUES (.......);

另外附上mysql保留字列表:

Reserved Words in 

MySQL 5.6.23

 

 

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

p

DOUBLE

DROP

DUAL

EACH

ELSE

ELSEIF

ENCLOSED

ESCAPED

EXISTS

EXIT

EXPLAIN

FALSE

FETCH

FLOAT

FLOAT4

FLOAT8

FOR

FORCE

FOREIGN

FROM

FULLTEXT

GET

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

IO_AFTER_GTIDS

IO_BEFORE_GTIDS

IS

ITERATE

JOIN

KEY

KEYS

KILL

LEADING

LEAVE

LEFT

LIKE

LIMIT

LINEAR

LINES

LOAD

LOCALTIME

LOCALTIMESTAMP

LOCK

LONG

LONGBLOB

LONGTEXT

LOOP

LOW_PRIORITY

MASTER_BIND

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

PARTITION

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

NewReserved Words in MySQL 5.6

 

 

GET

IO_AFTER_GTIDS

IO_BEFORE_GTIDS

MASTER_BIND

ONE_SHOT

PARTITION

SQL_AFTER_GTIDS

SQL_BEFORE_GTIDS

 

【相关教程推荐】

1. mysql数据库图文教程 

2. MySQL 5.1参考手册下载 

3. bootstrap教程 

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您听不到任何人,如何修复音频
3 周前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

如何修复 MySQL 8.4 上的 mysql_native_password 未加载错误 如何修复 MySQL 8.4 上的 mysql_native_password 未加载错误 Dec 09, 2024 am 11:42 AM

MySQL 8.4(截至 2024 年的最新 LTS 版本)中引入的主要变化之一是默认情况下不再启用“MySQL 本机密码”插件。此外,MySQL 9.0完全删除了这个插件。 此更改会影响 PHP 和其他应用程序

如何使用 PHP 设置 MySQL 连接池? 如何使用 PHP 设置 MySQL 连接池? Jun 04, 2024 pm 03:28 PM

使用PHP设置MySQL连接池,可以提高性能和可伸缩性。步骤包括:1.安装MySQLi扩展;2.创建连接池类;3.设置连接池配置;4.创建连接池实例;5.获取和释放连接。通过连接池,应用程序可以避免为每个请求创建新的数据库连接,从而提升性能。

如何使用 PHP 删除 MySQL 表中的数据? 如何使用 PHP 删除 MySQL 表中的数据? Jun 05, 2024 pm 12:40 PM

PHP提供以下方法来删除MySQL表中的数据:DELETE语句:用于从表中删除匹配条件的行。TRUNCATETABLE语句:用于清空表中的所有数据,包括自增ID。实战案例:可以使用HTML表单和PHP代码从数据库中删除用户。表单提交用户ID,PHP代码使用DELETE语句从users表中删除匹配ID的记录。

PHP连接MySQL后页面空白,die()函数无效是什么原因? PHP连接MySQL后页面空白,die()函数无效是什么原因? Apr 01, 2025 pm 03:03 PM

PHP连接MySQL后页面空白,die()函数失效的原因分析在学习PHP和MySQL数据库连接的过程中,常常会遇到一些让人困惑...

如何在LAMP架构下高效整合Node.js或Python服务? 如何在LAMP架构下高效整合Node.js或Python服务? Apr 01, 2025 pm 02:48 PM

在LAMP架构下整合Node.js或Python服务许多网站开发者都面临这样的问题:已有的LAMP(Linux Apache MySQL PHP)架构网站需要...

如何在PC端和移动端共享同一个页面并处理缓存问题? 如何在PC端和移动端共享同一个页面并处理缓存问题? Apr 01, 2025 pm 01:57 PM

如何在PC端和移动端共享同一个页面并处理缓存问题?在使用宝塔后台搭建的nginx php mysql环境下,如何让PC端和�...

PHP乐观锁结合事务扣除余额失败:如何保证并发情况下余额正确扣除? PHP乐观锁结合事务扣除余额失败:如何保证并发情况下余额正确扣除? Mar 31, 2025 pm 11:42 PM

PHP乐观锁与事务结合扣除余额问题详解本文将详细分析一个使用PHP、乐观锁和数据库事务进行余额扣除时,只成...

See all articles