MySQL语句中存在未知语法错误
我正在使用下面的CREATETABLE语句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
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(