Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/60.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 表名包含空格和方括号时引发SQL错误_Mysql_Sql - Fatal编程技术网

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是表中的最后一列(至少在提供的脚本中)。你能给我举个例子吗?只是。。。不要这样。有什么原因不能在这个问题的上下文中使用这个吗?这对括号不起作用吗?我不是在争论你关于不使用这些字符的评论,只是好奇它是否有效!这是可行的,但我同意。。。别这样。这是一个癌症的任何人谁必须维护或工作的数据库。任何你被迫用标识符引号括起来的东西都是痛苦的。包括空格、大写字母和特殊字符。只使用蛇壳。