环境:
当我尝试将模型与数据库模式同步时,我有一个表定义的类型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中的错误吗?
答案 0 :(得分:1)
(19)
(以及其他BIGINT
)末尾的INTs
之类的内容毫无意义。它是否存在无关紧要。这个数字也不重要;那个(20)
也没关系。
所有口味的编译和执行都相同。
答案 1 :(得分:0)
我找到的解决方案是定义de type like
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;
<强>结果强>