MySQL 语句中的未知语法错误
Unknown syntax error in MySQL statement
我正在使用下面的 CREATE TABLE 语句
CREATE TABLE IF NOT EXISTS users (
`uuid` varchar(36) NOT NULL,
`json` varchar(MAX) NOT NULL,
PRIMARY KEY (`uuid`)
);
但是我一直收到这个错误。
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
'MAX) NOT NULL,
PRIMARY KEY (uuid
)
)' at line 3
对我来说毫无意义。
此用途不支持MAX,保留给MAX功能使用。请改用等效数字,检查一下:Equivalent of varchar(max) in MySQL?
这对你有用。 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.please 参考下面的例子。
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)
我正在使用下面的 CREATE TABLE 语句
CREATE TABLE IF NOT EXISTS users (
`uuid` varchar(36) NOT NULL,
`json` varchar(MAX) NOT NULL,
PRIMARY KEY (`uuid`)
);
但是我一直收到这个错误。
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 'MAX) NOT NULL, PRIMARY KEY (
uuid
) )' at line 3
对我来说毫无意义。
此用途不支持MAX,保留给MAX功能使用。请改用等效数字,检查一下:Equivalent of varchar(max) in MySQL?
这对你有用。 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.please 参考下面的例子。
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)