PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Как да добавите автоматично увеличаващ се първичен ключ към съществуваща таблица в PostgreSQL?

(Актуализирано – Благодаря на хората, които коментираха )

Модерни версии на PostgreSQL

Да предположим, че имате таблица с име test1 , към който искате да добавите автоматично увеличаващ се id първичен ключ (сурогатна) колона. Следната команда трябва да е достатъчна в последните версии на PostgreSQL:

   ALTER TABLE test1 ADD COLUMN id SERIAL PRIMARY KEY;

По-стари версии на PostgreSQL

В старите версии на PostgreSQL (преди 8.x?) трябваше да свършите цялата мръсна работа. Следната последователност от команди трябва да свърши работа:

  ALTER TABLE test1 ADD COLUMN id INTEGER;
  CREATE SEQUENCE test_id_seq OWNED BY test1.id;
  ALTER TABLE test ALTER COLUMN id SET DEFAULT nextval('test_id_seq');
  UPDATE test1 SET id = nextval('test_id_seq');

Отново, в последните версии на Postgres това е приблизително еквивалентно на една единствена команда по-горе.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. DROP FUNCTION без да знаете броя/вида на параметрите?

  2. Оптимизация на заявки в PostgreSQL. EXPLAIN Basics – Част 2

  3. Rails 3.1:Запитване на Postgres за записи в рамките на времеви диапазон

  4. Изберете броя на редовете в друга таблица в оператор SELECT на Postgres

  5. MIN() Функция в PostgreSQL