1

Temat: Jak dodac klucz podstawowy do już istniejącej tabeli?

Dodałem kolumnę id
integer

po komendzie alter table adresy1 add primary key (id);

jest odpowiedź:
kolumna "id" zawiera puste wartosci

Jak ją napełnic wartościami? Na piechote sie nie da. zbyt ich dużo

2

Odp: Jak dodac klucz podstawowy do już istniejącej tabeli?

Najbardziej prymitywne rozwiązanie to:
krok 1: ustalenie max wartości dla pola ID w tabeli - select max(id)+1 as start from tabela;
Krok 2: utworzenie sekwencji CREATE SEQUENCE pk_id_seq START tu_wpisz_wartosc_z_kroku_1;
krok 3: poprawiamy pola id - update tabela set id=nextval ('pk_id_seq') where id is null;
krok 4: kasujemy zbędną sekwencje - DROP SEQUENCE pk_id_seq;

3

Odp: Jak dodac klucz podstawowy do już istniejącej tabeli?

Super.
Dziękuje.

4

Odp: Jak dodac klucz podstawowy do już istniejącej tabeli?

5

Odp: Jak dodac klucz podstawowy do już istniejącej tabeli?

Prymitywna bo to odtworzenie działania systemu, przy nadawaniu wartości dla primary key. Jest to metoda bardzo wydajna ale wymaga wykonania kilku kroków. Można to zrobić oczywiście jednym update-em ale wtedy nie musi być tak szybko, za to mniej jest pisania.