同步模型将 UNSIGNED BIGINT 修改为 UNSIGNED BIGINT(19)
Synchronizing the model modifies UNSIGNED BIGINT to UNSIGNED BIGINT(19)
环境:
- Ubuntu 14.04
- MySql Workbench 6.2.4
- MariaDB 10
当我尝试将模型与数据库模式同步时,我有一个 table 定义的类型 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 Workbench 中的错误?
我找到的解决方案是像这样定义类型
UNSIGNED BIGINT(20) --OK
而不是
UNSIGNED BIGINT --KO
MySql bug
实际上它似乎没有影响,正如我们在示例中看到的那样
例子
create table test.biginttest (a BIGINT, b BIGINT(10), c BIGINT(15) ZEROFILL);
INSERT INTO test.biginttest VALUES (-10,10,-10);
INSERT INTO test.biginttest VALUES (9223372036854775808,9223372036854775808,9223372036854775808);
select * from test.biginttest;
结果
BIGINT
(以及其他 INTs
)末尾的 (19)
等内容毫无意义。它是否存在并不重要。数量也不重要;那就是 (20)
也可以。
所有风格的编译和执行都相同。
环境:
- Ubuntu 14.04
- MySql Workbench 6.2.4
- MariaDB 10
当我尝试将模型与数据库模式同步时,我有一个 table 定义的类型 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 Workbench 中的错误?
我找到的解决方案是像这样定义类型
UNSIGNED BIGINT(20) --OK
而不是
UNSIGNED BIGINT --KO
MySql bug
实际上它似乎没有影响,正如我们在示例中看到的那样 例子
create table test.biginttest (a BIGINT, b BIGINT(10), c BIGINT(15) ZEROFILL);
INSERT INTO test.biginttest VALUES (-10,10,-10);
INSERT INTO test.biginttest VALUES (9223372036854775808,9223372036854775808,9223372036854775808);
select * from test.biginttest;
结果
BIGINT
(以及其他 INTs
)末尾的 (19)
等内容毫无意义。它是否存在并不重要。数量也不重要;那就是 (20)
也可以。
所有风格的编译和执行都相同。