首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何转义用作列名的保留字?MySQL/创建表

如何转义用作列名的保留字?MySQL/创建表
EN

Stack Overflow用户
提问于 2010-05-23 05:44:00
回答 3查看 179.5K关注 0票数 152

我正在从.NET中的类生成表,一个问题是一个类可能有一个字段名为key,这是一个保留的MySQL关键字。如何在create table语句中将其转义?(注意:下面的另一个问题是文本必须是固定大小才能被索引/唯一)

代码语言:javascript
复制
create table if not exists misc_info (
id INTEGER PRIMARY KEY AUTO_INCREMENT NOT NULL,
key TEXT UNIQUE NOT NULL,
value TEXT NOT NULL)ENGINE=INNODB;
EN

回答 3

Stack Overflow用户

发布于 2010-05-23 05:47:13

如果启用了ANSI SQL mode,则可以使用双引号

代码语言:javascript
复制
CREATE TABLE IF NOT EXISTS misc_info
  (
     id    INTEGER PRIMARY KEY AUTO_INCREMENT NOT NULL,
     "key" TEXT UNIQUE NOT NULL,
     value TEXT NOT NULL
  )
ENGINE=INNODB; 

或者是专有的反勾号,否则会转义。(在this answer中介绍了在各种键盘布局上查找`字符的位置)

代码语言:javascript
复制
CREATE TABLE IF NOT EXISTS misc_info
  (
     id    INTEGER PRIMARY KEY AUTO_INCREMENT NOT NULL,
     `key` TEXT UNIQUE NOT NULL,
     value TEXT NOT NULL
  )
ENGINE=INNODB; 

(来源:MySQL Reference Manual, 9.3 Reserved Words)

票数 193
EN

Stack Overflow用户

发布于 2010-05-23 05:46:49

您应该使用反勾号字符(`),例如:

代码语言:javascript
复制
create table if not exists misc_info (
id INTEGER PRIMARY KEY AUTO_INCREMENT NOT NULL,
`key` TEXT UNIQUE NOT NULL,
value TEXT NOT NULL)ENGINE=INNODB;
票数 79
EN

Stack Overflow用户

发布于 2022-01-23 05:57:59

对于CosmosDB SQL,您可能希望使用

代码语言:javascript
复制
SELECT item["RESERVED_KEY"] FROM ...
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2889871

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档