Thiemo Kellner <thiemo@xxxxxxxxxxxxxxxxxxxx> writes: > Am 24.03.2024 um 15:54 schrieb Erik Wienhold: >> This is required by the SQL standard: columns of a primary key must be >> NOT NULL. Postgres automatically adds the missing NOT NULL constraints >> when defining a primary key. You can verify that with \d test1 in psql. > To me, this behaviour, while correct, is not too concise. I wished, that > PG issued a warning about a definition conflict. In PostgreSQL, a PK > must always be not nullable, so explicitly defining on of a PK's columns > as nullable is contradictory, one should get notified of. To do that, we'd have to remember that you'd said NULL, which we don't: the word is just discarded as a noise clause. Considering that this usage of NULL isn't even permitted by the SQL standard, that seems like a bit too much work. regards, tom lane