문제

나는 필드를 만들려고 노력했다 TINYINT(1), NOT NULL 그리고 a DEFAULT 가치 -1 '알 수 없음'을 나타내지 만 클라이언트 로부터이 오류가 발생했습니다.

오류 변경 mytable: SQL 구문에 오류가 있습니다. Right 구문이 MySQL 서버 버전에 해당하는 매뉴얼을 확인하십시오.

나는 또한 길이 2를 만들려고했고 같은 메시지를 받았습니다.

추측 TINYINT 이러한 종류의 지정에 적합한 데이터 유형은 아니지만 무엇입니까?

편집 : Ed Cottrell의 의견을 읽은 후 작동했습니다. 어딘가에 추가 캐릭터가 있다고 생각합니다. 여기에 내 클라이언트 (Mac 용 Querious 사용)가 생성 한 진술이있었습니다.

ALTER TABLE `DBName`.`MyTable`
CHANGE COLUMN `MyColumn` `MyColumn` TINYINT(1) NOT NULL DEFAULT -1  COMMENT ''
AFTER `MyOtherColumn`;

그것을 알아 차렸다 COMMENT 거기에서 모든 것이 깨끗했는지 확인했습니다.

다른 의견과 답변은 감사되었습니다. 나는하자하기로 결정했다 NULL 이 경우 알 수없는 것을 의미합니다

도움이 되었습니까?

해결책

나는 당신이 이것을 약간 보관해야한다고 생각합니다 (저장 크기에 관심이 있다면) NULL "알 수 없음"을 의미합니다.

field bit(1) default NULL,

필드를 선언하는 것은 이상하게 보입니다 not null 그리고 본질적으로 의미하는 특별한 가치를 갖기 위해 NULL.

편집하다:

다음 구문이 "작동"합니다 SQL 바이올린:

create table t (
  val int,
  flag tinyint(1) default -1
 );

기본값은 "-1"보다는 "1"으로 인쇄하기 때문에 "Works"는 인용문입니다. (1) 단지 한 자리를 인쇄한다고 말하고 있습니다.

아마도 이전 버전의 MySQL에서는 -1 올바르게 표시되지 않습니다. (솔직히 말해서, 그것은 나를 놀라게 할 것입니다.)

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top