同步模型将 UNSIGNED BIGINT 修改为 UNSIGNED BIGINT(19)

Synchronizing the model modifies UNSIGNED BIGINT to UNSIGNED BIGINT(19)

环境:

当我尝试将模型与数据库模式同步时,我有一个 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) 也可以。

所有风格的编译和执行都相同。