環境:同步模型修改UNSIGNED BIGINT爲UNSIGNED BIGINT(19)
- 的Ubuntu 14.04
- MySQL工作臺6.2.4
- MariaDB的10
當我嘗試同步模型與數據庫模式和我有一個表定義類型UNSIGNED BIGINT(即UNSIGNED BIGINT(20)),然後它變成UNSIGNED BIGINT(19)。
正向工程的相同過程對這些數據類型正常工作。
型號
同步模式
CREATE TABLE IF NOT EXISTS `test`.`table` (
`id` BIGINT(19) UNSIGNED NOT NULL,
PRIMARY KEY (`id`))
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8
COLLATE = utf8_general_ci;
正向工程
CREATE TABLE IF NOT EXISTS `test.`table1` (
`id` BIGINT UNSIGNED NOT NULL,
PRIMARY KEY(`id`))
ENGINE = InnoDB;
難道是在MySQL工作臺的錯誤嗎?
唯一的區別是它可以只保存19位數字而不是20位 – Joe
編號A'BIGINT' _always_有64位的空間,其中一個可能是符號('SIGNED',默認值,'UNSIGNED ')。如果你還說'ZEROFILL',那麼'(n)'說「用'0s'填充輸出'n'數字(這是一個很少使用的功能。) –
類似地,'INT'總是有32位的空間('SIGNED':+/- 20 billion;'UNSIGNED':0-40億 - 通常綽綽有餘''id')。 32位= 4字節,是'BIGINT'大小的一半。 –