В PostgreSQL для автоматического увеличения значения поля используется последовательность (sequence) в сочетании с типом данных `SERIAL` или `BIGSERIAL`. Эти типы данных удобны для создания автоматически инкрементируемых идентификаторов. Вот как можно определить такое поле в структуре таблицы:
Для полей с размером до 2^31-1 (обычные целочисленные значения):
```sql
CREATE TABLE example_table (
id SERIAL PRIMARY KEY,
another_column TEXT
);
```
Для более крупных полей с размером до 2^63-1 (большие целочисленные значения):
```sql
CREATE TABLE example_table (
id BIGSERIAL PRIMARY KEY,
another_column TEXT
);
```
Когда вы определяете столбец с типом `SERIAL` или `BIGSERIAL`, PostgreSQL автоматически создает последовательность (sequence) для этого столбца и настраивает её на автоматическое увеличение.
Каждый раз, когда вы вставляете новую строку в таблицу и не указываете значение для столбца `id`, PostgreSQL будет автоматически использовать следующее значение из последовательности:
```sql
INSERT INTO example_table (another_column) VALUES ('Test Value');
```
Столбец `id` будет автоматически заполнен следующим числом последовательности.
Если вам нужна большая степень контроля, вы также можете создавать свои последовательности вручную и явно указывать их при вставке значений:
```sql
CREATE SEQUENCE my_custom_sequence START 1;
CREATE TABLE example_table (
id INT PRIMARY KEY DEFAULT nextval('my_custom_sequence'),
another_column TEXT
);
INSERT INTO example_table (another_column) VALUES ('Another Test');
```
Здесь, последовательность `my_custom_sequence` будет использоваться для генерации значений для столбца `id` в `example_table`. Команда `nextval('my_custom_sequence')` в значении по умолчанию указывает PostgreSQL использовать следующее значение из `my_custom_sequence` каждый раз, когда создается новая запись.