среды:Синхронизация модели изменяет БЕЗЗНАКОВЫЙ BIGINT беззнаковое BIGINT (19)
- Ubuntu 14,04
- MySql Workbench 6.2.4
- MariaDB 10
Когда я пытаюсь синхронизировать модель со схемой базы данных, и у меня есть таблица определенного типа UNSIGNED BIGINT (то есть UNSIGNED BIGINT (20)), тогда она становится UNSIGNED BIGINT (19).
Тот же процесс с форвардной инженерией отлично подходит для этих типов данных.
Модель
Synchronizing модель
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?
Единственное отличие состоит в том, что он может сэкономить только 19 цифр вместо 20 – Joe
№. «BIGINT» _always_ имеет место для 64 бит, одним из которых может быть знак ('SIGNED', по умолчанию, по сравнению с' UNSIGNED '). Если вы также говорите 'ZEROFILL', то' (n) 'говорит 'набирает вывод с цифрами' 0s' на 'n'. (Это очень редко используемая функция.) –
Аналогично, 'INT' всегда имеет место для 32 бит (' SIGNED': +/- 2 billion; 'UNSIGNED': от 0 до 4 миллиардов - обычно более чем достаточно для' id'). 32 бит = 4 байта, половина размера 'BIGINT'. –