Mysql 表名包含空格和方括号时引发SQL错误
这是我用来创建表的代码。我将Mysql 表名包含空格和方括号时引发SQL错误,mysql,sql,Mysql,Sql,这是我用来创建表的代码。我将“替换为[],但控制台会抛出相同的错误 CREATE TABLE google_trends_cartier ( "Month/Date" VARCHAR(255), "Cartier (Jeweler) China" INT, "cartier (Search Term) China" INT, "Cartier (Jeweler) United States"
“
替换为[]
,但控制台会抛出相同的错误
CREATE TABLE google_trends_cartier
(
"Month/Date" VARCHAR(255),
"Cartier (Jeweler) China" INT,
"cartier (Search Term) China" INT,
"Cartier (Jeweler) United States" INT,
"cartier (Search Term) United States" INT,
);
下面给出了错误消息
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '"Month/Date" VARCHAR(255),
"Cartier (Jeweler) China" INT,
"cartier (Search' at line 3
mysql> CREATE TABLE google_trends_cartier ( "Month/Date" VARCHAR(255), "Cartier (Jeweler) China" INT, "cartier (Search Term) China" INT, "Cartier (Jeweler) United States" INT, "cartier (Search Term) United States" INT, );
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '"Month/Date" VARCHAR(255), "Cartier (Jeweler) China" INT, "cartier (Search' at line 1
谢谢,我最近遇到了一个类似的错误。尝试将文本字符串括在backtick中,`。有一些方法可以解决带有空格和(一些)标点符号的列名问题,但这里有更好的解决方案
CREATE TABLE google_trends_cartier
(
yr INT,
mo INT,
cartier_jeweler_china INT,
cartier_term_china INT,
cartier_jeweler_us INT,
cartier_term_us INT
);
相信我们。稍后您将感谢我们。提示:不要在表/列标识符中包含空格、括号或数学运算符。事实上,包含数学运算符是一个灾难性的坏主意。此外,您似乎正在设计一个电子表格-与数据库表相反。“cartier(搜索词)United”INT,请删除逗号,语法有问题吗@Sergeyit是表中的最后一列(至少在提供的脚本中)。你能给我举个例子吗?只是。。。不要这样。有什么原因不能在这个问题的上下文中使用这个吗?这对括号不起作用吗?我不是在争论你关于不使用这些字符的评论,只是好奇它是否有效!这是可行的,但我同意。。。别这样。这是一个癌症的任何人谁必须维护或工作的数据库。任何你被迫用标识符引号括起来的东西都是痛苦的。包括空格、大写字母和特殊字符。只使用蛇壳。