我正在从.NET中的类生成表,一个问题是一个类可能有一个字段名为key
,这是一个保留的MySQL关键字。如何在create table语句中将其转义?(注意:下面的另一个问题是文本必须是固定大小才能被索引/唯一)
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;
发布于 2010-05-23 05:47:13
如果启用了ANSI SQL mode,则可以使用双引号
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中介绍了在各种键盘布局上查找`
字符的位置)
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;
发布于 2010-05-23 05:46:49
您应该使用反勾号字符(`),例如:
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;
发布于 2022-01-23 05:57:59
对于CosmosDB SQL,您可能希望使用
SELECT item["RESERVED_KEY"] FROM ...
https://stackoverflow.com/questions/2889871
复制相似问题