SMALLINTは、サイズが2バイトの整数型。
https://www.postgresql.jp/docs/9.4/datatype-numeric.html#DATATYPE-INT
postgresdb1=# CREATE TABLE smallint_table(name VARCHAR(32), number SMALLINT);
CREATE TABLE
postgresdb1=# \dt
リレーション一覧
スキーマ | 名前 | タイプ | 所有者
----------+----------------+----------+----------
public | car_models | テーブル | postgres
public | chartest | テーブル | postgres
public | employees | テーブル | postgres
public | levels | テーブル | postgres
public | orders | テーブル | postgres
public | products | テーブル | postgres
public | profile | テーブル | postgres
public | smallint_table | テーブル | postgres
public | test_results | テーブル | postgres
public | users | テーブル | postgres
public | varchartest | テーブル | postgres
(11 行)
postgresdb1=# INSERT INTO smallint_table VALUES('min', -32768);
INSERT 0 1
postgresdb1=# SELECT * FROM smallint_table;
name | number
------+--------
min | -32768
(1 行)
postgresdb1=# INSERT INTO smallint_table VALUES('max', 32767);
INSERT 0 1
postgresdb1=# SELECT * FROM smallint_table;
name | number
------+--------
min | -32768
max | 32767
(2 行)
postgresdb1=# INSERT INTO smallint_table VALUES('min', -32769);
ERROR: smallintの範囲外です
postgresdb1=# INSERT INTO smallint_table VALUES('max', 32768);
ERROR: smallintの範囲外です
postgresdb1=# SELECT * FROM smallint_table;
name | number
------+--------
min | -32768
max | 32767
(2 行)
postgresdb1=#-32768から32767までの値が入る。