我在迁移图表时又遇到了一个语法错误。我不确定这个图表是否有必要,但如果迁移过程顺利就好了,而这正是阻碍我前进的唯一原因。
错误是:您的 SQL 语法有错误;请检查与您的 MySQL 服务器版本相对应的手册,以了解在 '-1) 附近使用的正确语法:NULL、PRIMARY KEY ('diagram_id')、UNIQUE INDEX 'UK_principal_name' ('pri',第 6 行
而且语法中有一个VARBINARY(-1)
我从未见过的。这就是问题所在吗?
如果存在“Fonebook_dbo”。“sysdiagrams”则删除表; 创建表 `Fonebook_dbo`.`sysdiagrams` ( `name` VARCHAR(128) 字符集 utf8 COLLATE utf8_general_ci NOT NULL, `principal_id` INT(10) NOT NULL, `diagram_id` INT(10) NOT NULL AUTO_INCREMENT, `版本` INT(10) NULL, `定义` VARBINARY(-1) NULL, 主键 (`diagram_id`), 唯一索引 `UK_principal_name` (`principal_id`,`name`) ) 引擎=INNODB;
答案1
VARBINARY(-1),-1 是二进制的长度。设置正确的长度,例如 100
`definition` VARBINARY(100) NULL,
答案2
我对这种数据类型不太熟悉,但我猜这就是问题所在:
BINARY 和 VARBINARY 允许的最大长度与 CHAR 和 VARCHAR 相同,只是 BINARY 和 VARBINARY 的长度是以字节而不是字符为单位的长度。
是的,我认为负 1 字节不是有效长度。