Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> przynależność sekwencji
wpaski
post 29.02.2016, 18:20:05
Post #1





Grupa: Zarejestrowani
Postów: 194
Pomógł: 6
Dołączył: 25.12.2011

Ostrzeżenie: (0%)
-----


Witam, czy da się sprawdzić do jakiej tabeli/tabel należy dana sekwencja? Wiem że domyślny schemat (nazwy sekwencji) to nazwatabeli_nazwakolumny_seq ale czy da się sprawdzić to innym sposobem? no bo np. sekwencja może być inaczej nazwana, a mamy w bazie 100 tabel i 100 sekwencji i teraz trzeba ręcznie sprawdzać która sekwencja jest do której tabeli?

Ten post edytował wpaski 29.02.2016, 18:20:41
Go to the top of the page
+Quote Post
mmmmmmm
post 29.02.2016, 22:45:19
Post #2





Grupa: Zarejestrowani
Postów: 1 386
Pomógł: 302
Dołączył: 18.04.2012

Ostrzeżenie: (0%)
-----


Coś w ten deseń:
  1. SELECT attname kolumna, objid::regclass obiekt, refobjid::regclass::text tabela
  2. FROM pg_depend d JOIN pg_attribute a ON a.attrelid = d.refobjid AND a.attnum = d.refobjsubid JOIN pg_class c ON c.relkind='S' AND c.relfilenode=objid
  3. WHERE refobjid::regclass::text='nazwa tabeli'

Dostajesz w wyniku kolumnę, nazwę sequencera i tabelę...
Tylko, że wiesz, że jeden seq może być do N tabel ... ? smile.gif
Go to the top of the page
+Quote Post
Crozin
post 29.02.2016, 22:55:50
Post #3





Grupa: Zarejestrowani
Postów: 6 469
Pomógł: 1305
Dołączył: 6.08.2006
Skąd: Kraków

Ostrzeżenie: (0%)
-----


Warto też zaznaczyć, że sekwencja może być wykorzystana spoza bazy danych - w sumie dosyć popularna technika, gdzie to aplikacja zajmuje się nadawaniem identyfikatorów.
Go to the top of the page
+Quote Post
wpaski
post 2.03.2016, 12:44:39
Post #4





Grupa: Zarejestrowani
Postów: 194
Pomógł: 6
Dołączył: 25.12.2011

Ostrzeżenie: (0%)
-----


mmmmmmm dzięki, natomiast nie rozumiem jednej rzeczy
po usunięciu sekwencji (kaskadowo)i dodaniu ich ponownie Twój kod nie działa - nic nie znajduje, natomiast gdy wykonuję
Kod
SELECT c.relname FROM pg_class c WHERE c.relkind = 'S';

znajduje dodane przezemnie sekwencje

czemu tak sie dzieje?


edit:
juz wiem trzeba dodac:
Kod
ALTER SEQUENCE nazwatabeli_nazwakolumny_seq OWNED BY nazwatabeli.id;


Ten post edytował wpaski 2.03.2016, 13:02:10
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 24.06.2018 - 15:34