环境:同步模型修改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'大小的一半。 –