VARBINARY (-1), -1 é um comprimento de binário. Defina o comprimento correto, como 100
'definition' VARBINARY(100) NULL,
Eu tenho outro erro de sintaxe ao migrar um diagrama. Não tenho certeza se esse diagrama é necessário, mas seria bom ter uma migração tranquila, e isso é tudo o que está atrapalhando.
O erro é: Você tem um erro na sua sintaxe SQL; verifique o manual que corresponde à sua versão do servidor MySQL para a sintaxe correta para usar próximo a '-1) NULL, PRIMARY KEY (' diagram_id '), UNIQUE INDEX' UK_principal_name '(' pri 'na linha 6
E a sintaxe tem um VARBINARY(-1)
que nunca vi antes. Esse é o problema?
DROP TABLE IF EXISTS 'Fonebook_dbo'.'sysdiagrams'; CREATE TABLE 'Fonebook_dbo'.'sysdiagrams' ( 'name' VARCHAR(128) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL, 'principal_id' INT(10) NOT NULL, 'diagram_id' INT(10) NOT NULL AUTO_INCREMENT, 'version' INT(10) NULL, 'definition' VARBINARY(-1) NULL, PRIMARY KEY ('diagram_id'), UNIQUE INDEX 'UK_principal_name' ('principal_id', 'name') ) ENGINE = INNODB;
Não tenho experiência com o tipo de dados, mas acredito que esse seja o problema:
O comprimento máximo permitido é o mesmo para BINARY e VARBINARY, pois é para CHAR e VARCHAR, exceto que o comprimento para BINARY e VARBINARY é um comprimento em bytes e não em caracteres.
Então, sim, não acho que 1 byte negativo tenha tamanho válido.
Tags mysql migration sql-server