为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

红颜莎娜 2019-06-15 13:48:40
如何转义用作列名的保留字?MySQL/Create表我正在从.NET中的类生成表,一个问题是类可能有一个字段名key这是一个保留的MySQL关键字。如何在CREATETABLE语句中转义它?(注意:下面的另一个问题是文本必须是固定大小才能索引/唯一)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;
查看完整描述

3 回答

?
料青山看我应如是

TA贡献1772条经验 获得超7个赞

如果Ansi SQL模式已启用

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;

或者是专有的反勾号,否则就会逃逸。(在哪里可以找到`不同键盘布局上的字符覆盖在这个答案)

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参考手册,9.3保留字)


查看完整回答
反对 回复 2019-06-15
?
至尊宝的传说

TA贡献1789条经验 获得超10个赞

你应该使用后勾字符(‘)例如:

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;


查看完整回答
反对 回复 2019-06-15
  • 3 回答
  • 0 关注
  • 676 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信