NOT NULL

NOT NULL制約は、列がNULL値をとらないことを指定する。

https://www.postgresql.jp/document/7.3/user/ddl-constraints.html

postgresdb1=# CREATE TABLE users (
  id INT,
  name VARCHAR(50) NOT NULL,
  email VARCHAR(50) NOT NULL
);
CREATE TABLE
postgresdb1=# INSERT INTO users (id, name, email)
VALUES (1, 'Alice', 'alice@example.com');
INSERT 0 1
postgresdb1=# SELECT * FROM users;
 id | name  |       email      
----+-------+-------------------
  1 | Alice | alice@example.com
(1 行)

postgresdb1=# INSERT INTO users (id, name)
VALUES (2, 'Bob');
ERROR:  リレーション"users"の列"email"のNULL値が非NULL制約に違反しています
DETAIL:  失敗した行は(2, Bob, null)を含みます
postgresdb1=# SELECT * FROM users;
 id | name  |       email      
----+-------+-------------------
  1 | Alice | alice@example.com	
(1 行)

postgresdb1=# INSERT INTO users (id, name, email)
VALUES (2, NULL, 'bob@example.com');
ERROR:  リレーション"users"の列"name"のNULL値が非NULL制約に違反しています
DETAIL:  失敗した行は(2, null, bob@example.com)を含みます
postgresdb1=# SELECT * FROM users;
 id | name  |       email      
----+-------+-------------------
  1 | Alice | alice@example.com
(1 行)

postgresdb1=#

NOT NULLの付いた列は、挿入時にNULLを指定出来ないし、省略も出来ない。