sql >> Databáze >  >> RDS >> PostgreSQL

Jak přidat automaticky se zvyšující primární klíč do existující tabulky v PostgreSQL?

(Aktualizováno – děkujeme lidem, kteří komentovali )

Moderní verze PostgreSQL

Předpokládejme, že máte tabulku s názvem test1 , ke kterému chcete přidat automaticky se zvyšující primární klíč id (náhradní) sloupec. Následující příkaz by měl v posledních verzích PostgreSQL postačovat:

   ALTER TABLE test1 ADD COLUMN id SERIAL PRIMARY KEY;

Starší verze PostgreSQL

Ve starých verzích PostgreSQL (před 8.x?) jste museli dělat všechnu špinavou práci. Následující sekvence příkazů by měla stačit:

  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');

Opět, v posledních verzích Postgresu je to zhruba ekvivalentní výše uvedenému jedinému příkazu.



  1. Dynamická kontingenční tabulka na serveru SQL Server

  2. Najděte záznamy z jedné tabulky, které v jiné neexistují

  3. Je možné uložit hodnotu jednoho vybraného sloupce a použít ji pro další?

  4. Řešení s vysokou závažností chyb v SQL Server