Sequences, SERIAL и IDENTITY в Postgres. Использование в Go.

Ответ

SERIAL/BIGSERIAL - удобная запись для столбца с default nextval(sequence). IDENTITY (SQL standard) - то же по смыслу, явный синтаксис. При вставке без значения подставляется nextval. В Go при INSERT возврат сгенерированного id: RETURNING id в запросе и Scan в переменную, или QueryRow после Insert с RETURNING. Пропуски в последовательности возможны (откат транзакции, сбой).

var id int64
err := db.QueryRowContext(ctx, "INSERT INTO users (name) VALUES ($1) RETURNING id", name).Scan(&id)
🧠Квиз 🏆Лидеры 🎯Собесед. 📖Вопросы 📚База зн.