"Relacja" to tabela, a "krotka" to wiersz.
Oto a nice shortcut uzyskania nazwy tabeli z identyfikatorem tabeli (można również kwerendy tabeli pg_class
):
=> select 17720::regclass;
┌──────────┐
│ regclass │
├──────────┤
│ my_table │
└──────────┘
(1 row)
Teraz jak o tym wierszu? "Bit krotki" to tuple identifier, a każda tabela w bazie danych ma specjalne system column o nazwie ctid
, w którym przechowywane są te identyfikatory. Teraz, gdy znamy tę tabelę, możemy zrobić:
=> select * from my_table where ctid='(889,66)';
Jednak! Z dokumentacji kolumn systemowych (podkreślenie dodane): "[A] chociaż ctid może być użyty do szybkiego zlokalizowania wersji wiersza, ctid wiersza zmieni się, jeśli zostanie zaktualizowany lub przeniesiony przez VACUUM FULL. Dlatego ctid jest bezużyteczny jak długoterminowy identyfikator rzędu. " Innymi słowy, jeśli jesteś wystarczająco szybki, prawdopodobnie możesz ufać, że wiersz, który powrócił, jest związany z impasem, ale informacje te nie będą dostępne na zawsze.
Dzięki! Wymyśliłem mapowanie id do relacji, ale nadal nie jestem pewien, co zrobić z krotkami ... – user431221
Właściwie powinienem wyjaśnić - nie jestem pewien, jak czytać notację krotką (x, y) i jak mogę to wykorzystać, aby zrozumieć co spowodowało impas – user431221
OK, znaleziono inny bit danych - liczby są identyfikatorami transakcji, które wstawiły lub usunęły tę krotkę/wiersz. Czy jest jakiś sposób, aby dowiedzieć się, w którym SQL były uruchomione te transakcje? – user431221