保持するには大きすぎる値または小さすぎる値を整数フィールドに挿入した場合、InfiniDBは適切な最小値または最大値を使用してその値を下限もしくは上限の状態にします。
例えば、INT型の列に2,500,000,000を挿入した場合、実際に挿入される値はINT型の上限値の2,147,483,647になります。
1 2 3 4 5 6 7 8 9 10 |
mysql> INSERT INTO t1 VALUES(2500000000); Query OK, 1 row affected, 1 warning (0.06 sec) mysql> select * from t1; +------------+ | col1 | +------------+ | 2147483647 | +------------+ 1 row in set (0.06 sec) |
なお、INSERT時にはwarningが表示されるので、SHOW WARNINGSで確認することでどの列のデータの値が変更されたか確認することできます。
1 2 3 4 5 6 7 |
mysql> SHOW WARNINGS; +---------+------+-----------------------------------------------+ | Level | Code | Message | +---------+------+-----------------------------------------------+ | Warning | 1264 | Out of range value for column 'col1' at row 1 | +---------+------+-----------------------------------------------+ 1 row in set (0.00 sec) |
参考情報
各データ型の上限値、下限値については「InfiniDB SQL構文ガイド」のマニュアルをご確認ください。※InfiniDBの日本語マニュアルは「ダウンロード」記事でご確認いただけます。
http://infinidb-tech.ashisuto.co.jp/category/technical-info/download/