Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/68.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语句中存在未知语法错误_Mysql_Sql_Mysql Error 1064 - Fatal编程技术网

MySQL语句中存在未知语法错误

MySQL语句中存在未知语法错误,mysql,sql,mysql-error-1064,Mysql,Sql,Mysql Error 1064,我正在使用下面的CREATETABLE语句 CREATE TABLE IF NOT EXISTS users ( `uuid` varchar(36) NOT NULL, `json` varchar(MAX) NOT NULL, PRIMARY KEY (`uuid`) ); 然而,我不断得到这个错误 错误1064(42000):您的SQL语法有错误;检查 与右边的MySQL服务器版本相对应的手册 使用near的语法 'MAX)不为空, 主键(uuid) )“在3号线 对我来说毫无意义。MA

我正在使用下面的CREATETABLE语句

CREATE TABLE IF NOT EXISTS users (
`uuid` varchar(36) NOT NULL,
`json` varchar(MAX) NOT NULL,
PRIMARY KEY (`uuid`)
);
然而,我不断得到这个错误

错误1064(42000):您的SQL语法有错误;检查 与右边的MySQL服务器版本相对应的手册 使用near的语法 'MAX)不为空, 主键(
uuid
) )“在3号线


对我来说毫无意义。

MAX不支持此用途,它是为MAX功能保留的。请使用等效的数字,检查此项:

此项使用不支持MAX,它是为MAX功能保留的。请使用等效的数字,检查此项:

这将适用于您。MAX是保留关键字。指定varchar的确切数量而不是最大值。但是,varchar(max)将在SQL SERVER 2005+中工作

CREATE TABLE IF NOT EXISTS users (
  uuid varchar(36) NOT NULL,
  json varchar(21808) NOT NULL,
  PRIMARY KEY (uuid)
);

这对您很有用。MAX是保留关键字。指定varchar的确切数量而不是最大值。但是,varchar(max)将在SQL SERVER 2005+中工作

CREATE TABLE IF NOT EXISTS users (
  uuid varchar(36) NOT NULL,
  json varchar(21808) NOT NULL,
  PRIMARY KEY (uuid)
);

MAX()是MySql中的一个函数,因此如果要将大小声明为MAX,请参考下面的示例

CREATE TABLE IF NOT EXISTS users (
`uuid` varchar(36) NOT NULL,
`json` varchar(65535) NOT NULL,
PRIMARY KEY (`uuid`)
);
如果你计算出21845*3=65535,这根本不起作用
而21844*3=65532,这确实有效

mysql> CREATE TABLE foo ( v VARCHAR(21844) ) CHARSET=utf8;
Query OK, 0 rows affected (0.32 sec)
MAX()是MySql中的一个函数,因此如果要将大小声明为MAX,请参考下面的示例

CREATE TABLE IF NOT EXISTS users (
`uuid` varchar(36) NOT NULL,
`json` varchar(65535) NOT NULL,
PRIMARY KEY (`uuid`)
);
如果你计算出21845*3=65535,这根本不起作用
而21844*3=65532,这确实有效

mysql> CREATE TABLE foo ( v VARCHAR(21844) ) CHARSET=utf8;
Query OK, 0 rows affected (0.32 sec)

max是一个保留字。最大值如何…不,不,不带(最大值)的数字如何我得到了错误。varchar(60000),varchar(255)?有效,但是正在将行
json
从varchar转换为文本。很抱歉,我曾经在dif服务器上用60000检查过最大值,但这么高的值主要用于全文搜索。通常是100或255(最大值是一个保留字。最大值如何…不,没有(最大值)的数字如何?我得到了错误。varchar(60000)?,varchar(255)?这是可行的,但是正在将行
json
从varchar转换为文本。很抱歉,我曾经在dif服务器上用60000检查max,但是我会将文本的高值主要用于全文搜索。通常是100或255(