source

모델을 동기화하면 UNSIGNED BIGINT가 UNNSIGNED BIGINT로 수정됩니다(19).

lovecheck 2023. 8. 5. 10:39
반응형

모델을 동기화하면 UNSIGNED BIGINT가 UNNSIGNED BIGINT로 수정됩니다(19).

환경:

  • 우분투 14.04
  • MySql Workbench 6.2.4
  • 마리아DB 10

모델을 데이터베이스 스키마와 동기화하려고 할 때 정의된 유형의 UNSIGNED BIGINT(20)를 테이블로 설정하면 UNSIGNED BIGINT(19)가 됩니다.

전방 엔지니어링과 동일한 프로세스가 이러한 데이터 유형에 적합합니다.

모델

model

동기화 모델

Synchronizing model

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;

포워드 엔지니어링

forward engineering

CREATE TABLE IF NOT EXISTS `test.`table1` (
`id` BIGINT UNSIGNED NOT NULL,
PRIMARY KEY(`id`))
ENGINE = InnoDB;

MySql Workbench의 버그일 수 있습니까?

같은 것들(19)의 끝에BIGINT(및 기타)INTs아무 의미가 없습니다.그것이 있든 없든 상관없습니다.숫자도 중요하지 않습니다. 즉,(20)괜찮아요.

모든 맛이 컴파일되고 동일한 성능을 발휘합니다.

제가 찾은 해결책은 다음과 같이 유형을 정의하는 것입니다.

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;

결과

enter image description here

언급URL : https://stackoverflow.com/questions/42291836/synchronizing-the-model-modifies-unsigned-bigint-to-unsigned-bigint19

반응형