আমি কীভাবে একটি নির্দিষ্ট ডাটাবেস থেকে সমস্ত সীমাবদ্ধতার একটি তালিকা পেতে পারি?
উত্তর:
information_schema.table_constraints
প্রতিটি টেবিলের উপর নির্ধারিত সীমাবদ্ধতার নাম পেতে সারণীটি ব্যবহার করুন :
select *
from information_schema.table_constraints
where constraint_schema = 'YOUR_DB'
information_schema.key_column_usage
এই সীমাবদ্ধতার প্রত্যেকটিতে ক্ষেত্রগুলি পেতে টেবিলটি ব্যবহার করুন :
select *
from information_schema.key_column_usage
where constraint_schema = 'YOUR_DB'
পরিবর্তে আপনি যদি বিদেশী কী বাধা সম্পর্কে কথা বলছেন তবে ব্যবহার করুন information_schema.referential_constraints
:
select *
from information_schema.referential_constraints
where constraint_schema = 'YOUR_DB'
information_schema.columns.column_default
।
@ সেনসুলফুলের দুর্দান্ত উত্তর।
যারা কেবলমাত্র বাধা নামগুলির তালিকা খুঁজছেন (এবং অন্যান্য বিবরণ / কলাম নয়) তাদের জন্য আমি সংশোধিত ক্যোয়ারী উপস্থাপন করছি:
SELECT DISTINCT(constraint_name)
FROM information_schema.table_constraints
WHERE constraint_schema = 'YOUR_DB'
ORDER BY constraint_name ASC;
আপনি যদি ওপরে এবং বিদেশী কী বাধাগুলির পাশাপাশি ওএন_আপডে এবং ওএন_ডিএলটি এবং কলাম এবং বিদেশী কলামের নামগুলি একসাথে সমস্ত নিয়মগুলি দেখতে চান তবে এটি সত্যিই সহায়তা করে:
SELECT tc.constraint_schema,tc.constraint_name,tc.table_name,tc.constraint_type,kcu.table_name,kcu.column_name,kcu.referenced_table_name,kcu.referenced_column_name,rc.update_rule,rc.delete_rule
FROM information_schema.table_constraints tc
inner JOIN information_schema.key_column_usage kcu
ON tc.constraint_catalog = kcu.constraint_catalog
AND tc.constraint_schema = kcu.constraint_schema
AND tc.constraint_name = kcu.constraint_name
AND tc.table_name = kcu.table_name
LEFT JOIN information_schema.referential_constraints rc
ON tc.constraint_catalog = rc.constraint_catalog
AND tc.constraint_schema = rc.constraint_schema
AND tc.constraint_name = rc.constraint_name
AND tc.table_name = rc.table_name
WHERE tc.constraint_schema = 'my_db_name'
এমনকি আপনি এই কলামগুলি সম্পর্কে আরও কিছু তথ্য যুক্ত করতে চাইতে পারেন, কেবল এটি এসকিউএলে যুক্ত করুন (এবং আপনি যে কলামগুলি চান তা নির্বাচন করুন):
LEFT JOIN information_schema.COLUMNS c
ON kcu.constraint_schema = c.table_schema
AND kcu.table_name = c.table_name
AND kcu.column_name = c.column_name