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

如何转义用作列名的保留字?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;


红颜莎娜
浏览 724回答 3
3回答

料青山看我应如是

如果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保留字)

至尊宝的传说

你应该使用后勾字符(‘)例如: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;
打开App,查看更多内容
随时随地看视频慕课网APP