而不是这个:
CREATE TABLE IF NOT EXISTS `address` (
`Contact_ID` smallint(6) NOT NULL DEFAULT '0' COMMENT 'Primary Key',
`Street Address` char(50) DEFAULT NULL,
`City` char(20) DEFAULT NULL,
`Zip Code` char(8) DEFAULT NULL,
`Country` char(20) DEFAULT NULL,
PRIMARY KEY (`Contact_ID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Moradas';
我希望能够做到这一点:
CREATE TABLE IF NOT EXISTS 'address' (
'Contact_ID' smallint(6) NOT NULL DEFAULT ´0´ COMMENT ´Primary Key´,
'Street Address' char(50) DEFAULT NULL, (...)
我在WAMPSERVER上这样做。这是因为为了产生“每次我创建一个表并填充它”,所以必须做'shift + character'是不切实际的。
答案 0 :(得分:3)
(升级到答案)
如the manual中所述,如果标识符仅包含某些字符,则可以不加引号:
不带引号的标识符中允许的字符:
ASCII:[0-9,a-z,A-Z $ _](基本拉丁字母,数字0-9,美元,下划线)
扩展:U + 0080 .. U + FFFF
另外,请注意手册继续解释:
如果启用了
ANSI_QUOTES
SQL模式,也允许在双引号内引用标识符:mysql> CREATE TABLE "test" (col INT); ERROR 1064: You have an error in your SQL syntax... mysql> SET sql_mode='ANSI_QUOTES'; mysql> CREATE TABLE "test" (col INT); Query OK, 0 rows affected (0.00 sec)中的描述进行控制
ANSI_QUOTES
模式使服务器将双引号字符串解释为标识符。因此,启用此模式时,字符串文字必须包含在单引号内。它们不能用双引号括起来。服务器SQL模式按照Section 5.1.6, “Server SQL Modes”。