У меня есть следующий запрос, чтобы вернуть иностранные ключевые детали:Как запросить внешний ключ onupdate/ondelete?
SELECT
tc.constraint_name,
tc.table_name,
kcu.column_name,
ccu.table_schema AS foreign_table_schema,
ccu.table_name AS foreign_table_name,
ccu.column_name AS foreign_column_name,
pg_catalog.pg_get_constraintdef(pg_constraint.oid, true) AS foreign_definition
FROM
information_schema.table_constraints AS tc
JOIN information_schema.key_column_usage AS kcu
ON tc.constraint_name = kcu.constraint_name
JOIN information_schema.constraint_column_usage AS ccu
ON ccu.constraint_name = tc.constraint_name
JOIN pg_constraint
ON pg_constraint.conname = tc.constraint_name
WHERE constraint_type = 'FOREIGN KEY'
Из этого я могу получить большую часть информации мне нужно повторно consturct внешнего ключа. Единственное, чего не хватает, это обновить & на удаление информации (хотя это можно разобрать с foreign_definition
). Я пытался понять, как получить эти данные, не разбирая его, но до сих пор мне не повезло.
У кого-нибудь есть какие-либо детали, по какой таблице я могу найти информацию об обновлении и удалении данных?
Это специально для Postgres.
пытались ли вы 'information_schema.referential_constraints'? .. Есть две колонки' 'update_rule' и delete_rule' –