我正在使用CREATE TABLE语句
CREATE TABLE IF NOT EXISTS users (
`uuid` varchar(36) NOT NULL,
`json` varchar(MAX) NOT NULL,
PRIMARY KEY (`uuid`)
);
但是我一直收到这个错误。
错误1064(42000):您的SQL语法有错误;检查 手册,对应右边的MySQL服务器版本 语法在附近使用 'MAX)NOT NULL, 主要关键(
uuid
) )'在第3行
对我没用。
答案 0 :(得分:3)
MAX不支持此用途,它保留用于MAX功能。请使用等效数字,请查看:Equivalent of varchar(max) in MySQL?
答案 1 :(得分:1)
这对你有用。 MAX是保留关键字。指定varchar的确切数量而不是max。但是,varchar(MAX)将在SQL SERVER 2005 +。
中工作CREATE TABLE IF NOT EXISTS users (
uuid varchar(36) NOT NULL,
json varchar(21808) NOT NULL,
PRIMARY KEY (uuid)
);
答案 2 :(得分:1)
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)