Вы не вводите значение для id. Поскольку вы не устанавливаете его явно, ему неявно присваивается nullзначение, которое, конечно, не является допустимым значением для столбца первичного ключа. Вы можете избежать всей этой ситуации, определив этот столбец serialвместо простого старого integerи оставив всю тяжелую работу для базы данных.