integerは4バイト整数値を格納する数値データ型。
https://www.postgresql.jp/docs/9.4/datatype-numeric.html#DATATYPE-INT
PostgreSQL | 数値データ型
integer_tableを新たに作って試してみる。
[root@localhost bg1]# su - testuser1
[testuser1@localhost ~]$ psql testuser1db
psql (11.7)
"help" でヘルプを表示します。
testuser1db=> CREATE TABLE integer_table(name varchar(32), number integer);
CREATE TABLE
testuser1db=> \dt
リレーション一覧
スキーマ | 名前 | 型 | 所有者
----------+---------------+----------+-----------
public | integer_table | テーブル | testuser1
public | user_profile | テーブル | testuser1
(2 行)
testuser1db=> INSERT INTO integer_table VALUES('one', 1);
INSERT 0 1
testuser1db=> SELECT * FROM integer_table;
name | number
------+--------
one | 1
(1 行)
testuser1db=> INSERT INTO integer_table VALUES('min', -2147483648);
INSERT 0 1
testuser1db=> SELECT * FROM integer_table;
name | number
------+-------------
one | 1
min | -2147483648
(2 行)
testuser1db=> INSERT INTO integer_table VALUES('max', 2147483647);
INSERT 0 1
testuser1db=> SELECT * FROM integer_table;
name | number
------+-------------
one | 1
min | -2147483648
max | 2147483647
(3 行)
testuser1db=> INSERT INTO integer_table VALUES('min', -2147483649);
ERROR: integerの範囲外です
testuser1db=> INSERT INTO integer_table VALUES('max', 2147483648);
ERROR: integerの範囲外です
testuser1db=> SELECT * FROM integer_table;
name | number
------+-------------
one | 1
min | -2147483648
max | 2147483647
(3 行)
testuser1db=>このように上限や下限を超えるとエラーになるが、範囲内ならちゃんとINSERTできる。