Вы можете использовать serial (или bigserial для bigint) в качестве типов столбцов.
Они на самом деле являются оболочками для целочисленных и больших целочисленных типов, которые автоматически настраивают значение по умолчанию для nextval()
специальной последовательности который он также создает для вас под капотом.
Чтобы добавить такое поле, вам нужно выполнить только следующее предложение:
alter table your_table add column id serial primary key;
(Настройка имен таблиц и столбцов в соответствии с вашими потребностями / потребностями).
Очевидно, что если вы еще не создали таблицу, вы можете просто добавить поле, указав его как serial
в объявлении таблицы. Но не забудьте также объявить его как primary key
, чтобы обеспечить его обработку как таковую.
Это создаст и заполнит (из-за присущего ему значения по умолчанию) столбец id последовательными числами в одной транзакции.
Имейте в виду, что в зависимости от размера таблицы это может занять значительное время.
Кроме того, для больших таблиц вам может потребоваться использовать bigserial вместо serial .
Чтобы получить id , назначенный только что вставленной строке, вы можете добавить к оператору вставки предложение returning id
, которое будет действовать как выборка, возвращающая строку (или несколько строк, если вставив несколько с одним утверждением) с ним (конечно, вы также можете использовать returning *
или returning _whatever_columns_you_want_
.