Computer >> 컴퓨터 >  >> 프로그램 작성 >> MySQL

MySQL에서 bigint가 서명되었는지 또는 서명되지 않았는지 이해하는 방법은 무엇입니까?

<시간/>

unsigned를 지정하지 않으면 bigint가 서명됩니다. unsigned를 지정하면 bigint가 unsigned가 됩니다.

먼저 테이블을 생성하겠습니다 -

mysql> create table DemoTable
   (
   Number bigint, // signed
   Number2 bigint unsigned // unsigned
   );
Query OK, 0 rows affected (1.08 sec)

삽입 명령을 사용하여 테이블에 레코드 삽입 -

mysql> insert into DemoTable values(18446744073709551615,18446744073709551615);
ERROR 1264 (22003): Out of range value for column 'Number' at row 1
mysql> insert into DemoTable values(9223372036854775807,18446744073709551615);
Query OK, 1 row affected (0.28 sec)

select 문을 사용하여 테이블의 모든 레코드 표시 -

mysql> select * from DemoTable;

이것은 다음과 같은 출력을 생성합니다 -

+---------------------+----------------------+
| Number              | Number2              |
+---------------------+----------------------+
| 9223372036854775807 | 18446744073709551615 |
+---------------------+----------------------+
1 row in set (0.00 sec)