Sql-Server

創建 Sql Server 圖表對象時 MySQL Migration Toolkit 語法錯誤

  • December 22, 2014

遷移圖表時出現另一個語法錯誤。我不確定這個圖表是否必要,但如果能順利遷移會很好,這就是阻礙的全部。

錯誤是:您的 SQL 語法有錯誤;檢查與您的 MySQL 伺服器版本相對應的手冊以獲取正確的語法,以便在 ‘-1) NULL、PRIMARY KEY (‘diagram_id’)、UNIQUE INDEX ‘UK_principal_name’ (‘pri’ at line 6

並且語法有一個VARBINARY(-1)我以前從未見過的。那是問題嗎?

刪除表如果存在`Fonebook_dbo`.`sysdiagrams`;
創建表`Fonebook_dbo`.`sysdiagrams`(
`name` VARCHAR(128) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
`principal_id` INT(10) 非空,
`diagram_id` INT(10) NOT NULL AUTO_INCREMENT,
`版本` INT(10) NULL,
`定義` VARBINARY(-1) NULL,
主鍵(`diagram_id`),
唯一索引`UK_principal_name`(`principal_id`,`name`)
)
引擎=創新;

VARBINARY(-1), -1 是二進制的長度。設置正確的長度,比如 100

 `definition` VARBINARY(100) NULL,

我對數據類型沒有經驗,但我猜這是問題所在:

BINARY 和 VARBINARY 的允許最大長度與 CHAR 和 VARCHAR 相同,除了 BINARY 和 VARBINARY 的長度是字節長度而不是字元長度。

所以是的,我認為負 1 字節不是有效長度。

引用自:https://serverfault.com/questions/183341