programing

서명되지 않은 MySQL TINYINT

mailnote 2023. 10. 23. 22:01
반응형

서명되지 않은 MySQL TINYINT

t=t|128로 작성하려고 했는데 범위를 벗어났습니다.아주 작은 글씨가 서명되어 있는 것 같습니다.

그러나 http://dev.mysql.com/doc/refman/5.5/en/numeric-types.html 은 서명되지 않은 (below ) below일 수도 있다고 말합니다.하지만 서명이 안 된 상태로 만드는 방법은 나와 있지 않습니다.어떻게 하죠?

Type     Storage    Minimum Value        Maximum Value
         (Bytes)    (Signed/Unsigned)   (Signed/Unsigned)
TINYINT     1           -128                    127
                          0                     255
SMALLINT    2          -32768                   32767
                          0                     65535
MEDIUMINT   3          -8388608                8388607
                          0                   16777215
INT         4         -2147483648            2147483647
                          0                  4294967295
BIGINT      8      -9223372036854775808  9223372036854775807
                          0             18446744073709551615

UNSIGNED는 여러 유형에 추가할 수 있는 속성입니다.설명서에서:

data_type:

    BIT[(length)]
  | TINYINT[(length)] [UNSIGNED] [ZEROFILL]
  | SMALLINT[(length)] [UNSIGNED] [ZEROFILL]
  | MEDIUMINT[(length)] [UNSIGNED] [ZEROFILL]
  | INT[(length)] [UNSIGNED] [ZEROFILL]
  | INTEGER[(length)] [UNSIGNED] [ZEROFILL]
  | BIGINT[(length)] [UNSIGNED] [ZEROFILL]
  | REAL[(length,decimals)] [UNSIGNED] [ZEROFILL]
  | DOUBLE[(length,decimals)] [UNSIGNED] [ZEROFILL]
  | FLOAT[(length,decimals)] [UNSIGNED] [ZEROFILL]
  | DECIMAL[(length[,decimals])] [UNSIGNED] [ZEROFILL]
  | NUMERIC[(length[,decimals])] [UNSIGNED] [ZEROFILL]
  | DATE
  | TIME
  | TIMESTAMP
  | DATETIME
  | YEAR
  | CHAR[(length)]
      [CHARACTER SET charset_name] [COLLATE collation_name]
  | VARCHAR(length)
      [CHARACTER SET charset_name] [COLLATE collation_name]
  | BINARY[(length)]
  | VARBINARY(length)
  | TINYBLOB
  | BLOB
  | MEDIUMBLOB
  | LONGBLOB
  | TINYTEXT [BINARY]
      [CHARACTER SET charset_name] [COLLATE collation_name]
  | TEXT [BINARY]
      [CHARACTER SET charset_name] [COLLATE collation_name]
  | MEDIUMTEXT [BINARY]
      [CHARACTER SET charset_name] [COLLATE collation_name]
  | LONGTEXT [BINARY]
      [CHARACTER SET charset_name] [COLLATE collation_name]
  | ENUM(value1,value2,value3,...)
      [CHARACTER SET charset_name] [COLLATE collation_name]
  | SET(value1,value2,value3,...)
      [CHARACTER SET charset_name] [COLLATE collation_name]
  | spatial_type

서명되지 않은 항목에 키워드를 표시합니다.unsigned. 예를 들어 표를 만들 때:

CREATE TABLE `example_table` (
  `example_col` tinyint(3) unsigned NOT NULL
);

자세한 내용은 대신작성을 참조하거나, 표 변경을 참조하십시오.

첫째, 당신은 부정적인 값을 가진 무언가를 해야 합니다, 그렇지 않으면.ALTER TABLE...UNSIGNED오류를 던집니다.예를 들어, 모든 값을 증가시킬 수 있습니다.

UPDATE table SET tiny_field = tiny_field + 128;

그런 다음 ALTER TABLE을 사용하여 필드 유형/옵션을 변경합니다.

언급URL : https://stackoverflow.com/questions/12812362/mysql-tinyint-as-unsigned

반응형