다음은 저의 컴퓨터에서 테스트해 본 결과입니다.
mysql> create table t (a bigint);
Query OK, 0 rows affected (0.00 sec)
mysql> insert into t values (123456789012);
Query OK, 1 row affected (0.00 sec)
mysql> select * from t;
+--------------+
| a |
+--------------+
| 123456789012 |
+--------------+
1 row in set (0.00 sec)
mysql> insert into t values (123456789012345);
Query OK, 1 row affected (0.00 sec)
mysql> select * from t;
+-----------------+
| a |
+-----------------+
| 123456789012 |
| 123456789012345 |
+-----------------+
2 rows in set (0.00 sec)
mysql>
정확히 원인은 모르겠지만 현재 저의 컴에서는 제대로 돌아가고 있습니다.
제대로 돌아가지 않는다면 버전을 3.23.X 버전을 컴파일해서 사용해 보시기 바랍니다. 저가 테스트한 환경은 다음과 같습니다.
시스템: P-III 550E, 256M
MySQL : 3.23.12c-alpha-log
OS : RedHat 6.1
이상입니다.
::김태성 님께서 쓰시길::
> BIGINT가 64bit인걸로 알고 있는데,
> 십진수로 한 12자리정도를 넣으려하면, 이상한 숫자가 들어가더군요.
> 또, DECIMAL(15,0)으로 잡아도 똑같이 작은 숫자는 잘 들어가는데,
> 12자리 이상 넣으면 이상한 숫자로 바뀌어서 들어갑니다.
> 결국에는 VARCHAR로 바꾸어서 넣고, 빼서 다시 숫자로 바꾸고 있지만...
> 무엇이 잘못 되었나요?
> (jdbc로도 해보았고, mysql client로도 해 보았느나 같은 결과입니다)
>
> 제가 넣으려는 숫자가 매뉴얼에 나온 bigint의 범위보다는 분명히 적었는데..
>
> 3.2.22버전을 깔았고, 리눅스/인텔 에서 소스 컴파일 했습니다.
> 컴파일 할때 별 다른 것은 만지지 않았고, 한글지원이 되도록 한거외는 다른 것은 하지 않았습니다.
>
> 뭐 다른 세팅을 해야 합니까?
>
> ps:
> 다른 메일링 리스트에서 보니까, config.h를 보라고 하길래 봤더니..
> LONGLONG 타입이 8bytes로 맞게 세팅되어 있더군요.
>
> 괜찮으시다면 메일로도 답장 부탁드립니다.
> 그럼 안녕히계세요.
|