모든 값을 int 형 사이즈에 모든 값을 대입해도[ex : int(10) ] 4byte의 unsigned 수치를 넘어가지를 못하네요.
만약에 32bit에서 integer(<=4)는 4바이트로 무조건 인식한다면 이해하겠는데 integer 5를 초과하는데도 최대 수치가 동일한 부분이 이해가 안갑니다.
아래가 입력 수치 s붙은게 signed, u가 붙은게 unsigned 입니다.
32bit os 이구요.
아래가 출력값과 스키마입니다.
왜그런가요?
mysql> select * from __test;
+-----+-------+-------+------------+------------+------------+------------+------------+------------+------------+------------+------------+------------+------------+
| idx | tniny | smint | int32s | int32u | int32s2 | int32u2 | int32s3 | int32u3 | int32s4 | int32u4 | int32s5 | int32u5 | int10u |
+-----+-------+-------+------------+------------+------------+------------+------------+------------+------------+------------+------------+------------+------------+
| 1 | 127 | 32767 | 2147483647 | 4294967295 | 2147483647 | 4294967295 | 2147483647 | 4294967295 | 2147483647 | 4294967295 | 2147483647 | 4294967295 | 4294967295 |
+-----+-------+-------+------------+------------+------------+------------+------------+------------+------------+------------+------------+------------+------------+
1 row in set (0.00 sec)
테이블 구조입니다.
mysql> desc __test;
+---------+------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+---------+------------------+------+-----+---------+----------------+
| idx | int(1) | NO | PRI | NULL | auto_increment |
| tniny | tinyint(1) | NO | | 0 | |
| smint | smallint(1) | NO | | 0 | |
| int32s | int(1) | NO | | 0 | |
| int32u | int(1) unsigned | NO | | 0 | |
| int32s2 | int(2) | NO | | 0 | |
| int32u2 | int(2) unsigned | NO | | 0 | |
| int32s3 | int(3) | NO | | 0 | |
| int32u3 | int(3) unsigned | NO | | 0 | |
| int32s4 | int(4) | NO | | 0 | |
| int32u4 | int(4) unsigned | NO | | 0 | |
| int32s5 | int(5) | NO | | 0 | |
| int32u5 | int(5) unsigned | NO | | 0 | |
| int10u | int(10) unsigned | NO | | 0 | |
+---------+------------------+------+-----+---------+----------------+ |