1

环境:

  • Ubuntu 14.04
  • MySql 工作台 6.2.4
  • 玛丽亚数据库 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 Workbench 中的错误吗?

4

2 回答 2

1

(和其他)(19)末尾之类的东西没有任何意义。它是否存在并不重要。数量也不重要;那也可以。BIGINTINTs(20)

所有口味都将编译和执行相同的。

于 2017-02-18T21:40:39.617 回答
0

我找到的解决方案是定义 de 类型

UNSIGNED BIGINT(20) --OK

代替

UNSIGNED BIGINT  --KO

MySql错误


在实践中,它似乎没有影响,正如我们在示例中看到的 那样

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;

结果

在此处输入图像描述

于 2017-02-17T12:00:02.820 回答