«Отношение» - это таблица, а «кортеж» - это строка.
Вот хороший ярлык для получения имени таблицы из идентификатора таблицы (вы также можетезапросить таблицу pg_class
):
=> select 17720::regclass;
┌──────────┐
│ regclass │
├──────────┤
│ my_table │
└──────────┘
(1 row)
А как насчет строки?«Бит кортежа» - это идентификатор кортежа , и каждая таблица в вашей базе данных имеет специальный системный столбец , называемый ctid
, где хранятся эти идентификаторы.Теперь, когда мы знаем таблицу, о которой идет речь, мы можем сделать:
=> select * from my_table where ctid='(889,66)';
Однако!Из документации по системному столбцу (выделение добавлено): "[A], хотя ctid может быть использован для очень быстрого поиска версии строки, ctid строки изменится , если он обновляется или перемещается с помощью VACUUM FULL. Поэтомуctid бесполезен как долгосрочный идентификатор строки. "Другими словами, если вы достаточно быстры, вы, вероятно, можете поверить, что возвращенная строка является той, которая вовлечена в тупик, но эта информация не будет доступна вечно.