Як я можу вказати, що стовпчик слід автоматично збільшувати в pgAdmin?


15

Я почав вивчати pgAdmin III для управління базою даних PostgreSQL. Але це був не простий у використанні додаток.

Якщо я створюю або створив таблицю з pgAdmin III, як я можу додати функцію "автоматичного збільшення" на ідентифікатор стовпця, який має ціле число?

Відповіді:


17

два варіанти: Використовуйте SERIAL "типу даних" або створіть послідовність і використовуйте цю послідовність як значення за замовчуванням для цілого числа:

CREATE SEQUENCE your_seq;
CREATE TABLE foo(
  id int default nextval('your_seq'::regclass),
  other_column TEXT
);
INSERT INTO foo(other_column) VALUES ('bar') RETURNING *;

1
Цю відповідь можна було б оновити, щоб включити GENERATED BY DEFAULT AS IDENTITYпредставлений Postgres> = 10.
Madbreaks

15

Якщо ви хочете зробити це в PGAdmin, це набагато простіше, ніж використовувати командний рядок. Здається, у PostgreSQL, щоб додати автоматичний приріст до стовпця, спочатку нам потрібно створити послідовність автоматичного збільшення та додати його до потрібного стовпця. Мені це подобалось.

1) По-перше, вам потрібно переконатися в наявності первинного ключа для вашого столу. Також зберігайте тип даних первинного ключа у bigint або smallint. (Я використовував bigint, не міг знайти тип даних, званий serial, як згадується в інших відповідях в інших місцях)

2) Потім додайте послідовність, клацнувши правою кнопкою миші на послідовність-> додати нову послідовність . Якщо в таблиці немає даних, залиште послідовність такою, якою є, не вносити жодних змін. Просто збережіть це. Якщо є існуючі дані, додайте останнє або найвище значення у стовпці первинного ключа до поточного значення на вкладці "Означення", як показано нижче. введіть тут опис зображення

3) Нарешті, додайте рядок nextval('your_sequence_name'::regclass)до значення за замовчуванням у своєму первинному ключі, як показано нижче.

введіть тут опис зображення Переконайтесь, що назва послідовності тут правильне. Це все і автоматичний приріст повинен працювати.


4
Я не погоджуюся з приводу "простішого в PgAdmin". Ви думаєте, що пройти кліки простіше, ніж просто зробити стовпець SERIAL?
ypercubeᵀᴹ

1
Чи потрібно сказати простіше тим, хто звик до графічних інтерфейсів і якщо ви не знайомі з командними рядками. :)
toing_toing
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.