ওরাকল একটি সীমাবদ্ধতা সন্ধান করুন


166

আমার কাছে একটা বাধা আছে users.SYS_C00381400। আমি কীভাবে সীমাবদ্ধতাটি আবিষ্কার করব? সমস্ত বাধা জিজ্ঞাসা করার উপায় আছে?


বাধা কীভাবে জানব? ব্যবহারকারী.SYS_C00381400
বিনয়

সীমাবদ্ধতার নামটি একটি ত্রুটি বার্তায় প্রদর্শিত হয়েছিল।
ডেভিড

উত্তর:


267
select * from all_constraints
where owner = '<NAME>'
and constraint_name = 'SYS_C00381400'
/

সমস্ত ডেটা অভিধানের মতামতের মতো, আপনি যদি আপনার বর্তমান স্কিমা এবং প্রশাসনের ব্যবহারকারীদের জন্য একটি ডিবিএ_সিএনএসআরএনটিএস ভিউ পরীক্ষা করতে চান তবে এটি একটি USER_CONSTRAINTS দর্শন।

সীমাবদ্ধ নামের নির্মাণটি সিস্টেম উত্পন্ন সীমাবদ্ধতার নাম নির্দেশ করে। উদাহরণস্বরূপ, যদি আমরা একটি টেবিলের ঘোষণায় নালকে নির্দিষ্ট না করি। বা প্রকৃতপক্ষে একটি প্রাথমিক বা অনন্য কী। উদাহরণ স্বরূপ:

SQL> create table t23 (id number not null primary key)
  2  /

Table created.

SQL> select constraint_name, constraint_type
  2  from user_constraints
  3  where table_name = 'T23'
  4  /

CONSTRAINT_NAME                C
------------------------------ -
SYS_C00935190                  C
SYS_C00935191                  P

SQL>

'C'পরীক্ষার 'P'জন্য, প্রাথমিক জন্য।

সাধারণত সম্পর্কের সীমাবদ্ধতার একটি সুস্পষ্ট নাম দেওয়া ভাল ধারণা। উদাহরণস্বরূপ, যদি ডাটাবেস প্রাথমিক কীটির জন্য একটি সূচক তৈরি করে (যা কলামটি ইতিমধ্যে সূচিযুক্ত না হলে এটি করবে) এটি সূচকের নাম বাধা নাম ব্যবহার করবে। আপনি পছন্দ মতো সূচী পূর্ণ ডাটাবেস চান না SYS_C00935191

সত্যি কথা বলতে, বেশিরভাগ লোকেরা নূন্যতম প্রতিবন্ধকতাগুলির নামকরণ করতে বিরত হন না।


25

আরও বিশদ বিবরণ পেতে (কোন টেবিল / কলামটি কোন টেবিল / কলামে রেফারেন্স দেয়) আপনি নিম্নলিখিত কোয়েরিটি চালাতে পারেন:

SELECT   uc.constraint_name||CHR(10)
   ||      '('||ucc1.TABLE_NAME||'.'||ucc1.column_name||')' constraint_source
   ,       'REFERENCES'||CHR(10)
   ||      '('||ucc2.TABLE_NAME||'.'||ucc2.column_name||')' references_column
FROM user_constraints uc ,
  user_cons_columns ucc1 ,
  user_cons_columns ucc2
WHERE uc.constraint_name = ucc1.constraint_name
AND uc.r_constraint_name = ucc2.constraint_name
AND ucc1.POSITION        = ucc2.POSITION -- Correction for multiple column primary keys.
AND uc.constraint_type   = 'R'
AND uc.constraint_name   = 'SYS_C00381400'
ORDER BY ucc1.TABLE_NAME ,
  uc.constraint_name;

থেকে এখানে


6

সম্ভবত এটি সাহায্য করতে পারে ..

SELECT constraint_name, constraint_type, column_name
from user_constraints natural join user_cons_columns
where table_name = "my_table_name";
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.