ওরাকেলে একটি ট্রিগার কীভাবে নিষ্ক্রিয় করবেন

Orakele Ekati Trigara Kibhabe Niskriya Karabena



ডাটাবেস ট্রিগার, বা সংক্ষেপে ট্রিগার, সঞ্চিত পদ্ধতিগুলিকে উল্লেখ করে যা একটি প্রদত্ত ডাটাবেস অবজেক্টের মধ্যে একটি ইভেন্ট কার্যকলাপের প্রতিক্রিয়া হিসাবে কার্যকর করা হয়।

এটি স্ট্যান্ডার্ড সঞ্চিত পদ্ধতির থেকে পৃথক, যার জন্য ব্যবহারকারীর কাছ থেকে স্পষ্ট আহ্বান প্রয়োজন। যেহেতু ট্রিগারগুলি স্বয়ংক্রিয়, তাই সংযুক্ত ব্যবহারকারী বা সার্ভারের অবস্থা নির্বিশেষে নির্দিষ্ট ইভেন্টটি ঘটলে সেগুলি ট্রিগার বা ফায়ার করা হয়।







বেশিরভাগ রিলেশনাল ডাটাবেস ট্রিগার ব্যবহার করে স্বয়ংক্রিয় কাজগুলি যেমন অবৈধ লেনদেন প্রতিরোধ, ইভেন্ট লগিং, আনা এবং রেকর্ডিং টেবিল অ্যাক্সেস পরিসংখ্যান এবং আরও অনেক কিছু করতে সমর্থন করে।



একবার একটি ট্রিগার তৈরি হয়ে গেলে, যখনই সংশ্লিষ্ট ইভেন্ট ঘটে তখন এটি সর্বদা চলে। যাইহোক, আপনি অস্থায়ীভাবে বা স্থায়ীভাবে একটি ট্রিগার কার্যকর করা থেকে প্রতিরোধ করতে চাইতে পারেন। এখানেই ট্রিগার নিষ্ক্রিয় বৈশিষ্ট্যটি কার্যকর হয়।



এই পোস্টটি একটি ওরাকল ডাটাবেসের মধ্যে একটি ট্রিগার নিষ্ক্রিয় করার জন্য দ্রুত এবং সহজ পদক্ষেপগুলি সম্পর্কে আলোচনা করবে। আপনি যদি ওরাকল ট্রিগারে নতুন হন এবং কীভাবে এটি তৈরি করবেন তা জানতে চান, নিম্নলিখিত লিঙ্কটি দেখুন:





https://linuxhint.com/oracle-create-trigger

একটি টেস্ট ট্রিগার তৈরি করা হচ্ছে

ট্রিগার নিষ্ক্রিয় করার পদ্ধতি নিয়ে আলোচনা করার আগে, আসুন প্রদর্শনের উদ্দেশ্যে একটি নমুনা ট্রিগার সেট আপ করি।



বিঃদ্রঃ : এই বিভাগটি কীভাবে ডাটাবেস ট্রিগারগুলিকে সংজ্ঞায়িত করতে বা ব্যবহার করতে হয় তা কভার করে না।

আমরা একটি ট্রিগার তৈরি করতে চাই যা একটি ডিলিট অপারেশনের পরে ব্যবহারকারীর কার্যকলাপ লগ করে। উদাহরণস্বরূপ, ধরুন আমাদের কাছে দেখানো তথ্য সহ একটি নমুনা_ডেটা টেবিল রয়েছে:

আমাদের প্রথমে একটি টেবিল তৈরি করতে হবে যেখানে আমরা প্রতিটি মুছে ফেলার কার্যকলাপের জন্য লগ সংরক্ষণ করি।

টেবিল স্কিমা নিম্নরূপ:

টেবিল নমুনা_ডেটা_লগ তৈরি করুন(
আইডি নাম্বার,
প্রথম_নাম varchar2(50),
ip_address varchar2(20),
btc_address varchar2(50),
ক্রেডিট_কার্ড varchar2(50),
শনাক্তকারী varchar2(40),
মুছে ফেলার_তারিখ তারিখ,
varchar2(20) দ্বারা মুছে ফেলা হয়েছে
);

পরবর্তী, আমাদের একটি ট্রিগার সংজ্ঞায়িত করতে হবে যা একটি মুছে ফেলা ইভেন্টের পরে কার্যকর করা হয়। ট্রিগার সংজ্ঞা নিম্নরূপ প্রদান করা হয়:

ট্রিগার log_user তৈরি বা প্রতিস্থাপন করুন
মুছে ফেলার পরে
নমুনা_ডেটাতে
প্রতিটি সারির জন্য
ঘোষণা
action_username varchar2(20);
শুরু
দ্বৈত থেকে অ্যাকশন_ইউজারনেমে ব্যবহারকারী নির্বাচন করুন;
নমুনা_ডেটা_লগগুলিতে ঢোকান
মান (:OLD.id,
:OLD.first_name,
:OLD.ip_address,
:OLD.btc_address,
:OLD.credit_card,
:ওল্ড.আইডেন্টিফায়ার,
সিসডেট,
action_username);
শেষ;

ট্রিগার পরীক্ষা করার জন্য, আসুন নমুনা_ডেটা টেবিল থেকে দেখানো হিসাবে একটি মুছে ফেলার অপারেশন করি:

নমুনা_ডেটা থেকে মুছে দিন যেখানে id = 1;

অবশেষে, ডিলিট অপারেশন রেকর্ড করা হয়েছে তা নিশ্চিত করতে আমরা লগ টেবিল চেক করতে পারি:

নমুনা_ডেটা_লগ থেকে * নির্বাচন করুন;

আউটপুট:

আমরা দেখতে পাচ্ছি, টেবিলটিতে মুছে ফেলার আগে আগের ডেটার একটি এন্ট্রি রয়েছে, সেইসাথে ব্যবহারকারীর নাম যা মুছে ফেলার কার্যকলাপ এবং মুছে ফেলার সময় সঞ্চালিত হয়েছে।

নিম্নলিখিত বিভাগে, আমরা পূর্ববর্তী ট্রিগার কিভাবে নিষ্ক্রিয় করতে হবে তা প্রদর্শন করব। এটি করার আগে, নিশ্চিত করুন যে আপনার লক্ষ্য ট্রিগার কার্যকরী এবং এটি সক্ষম বা নিষ্ক্রিয় করার জন্য আপনার কাছে পর্যাপ্ত অনুমতি রয়েছে।

PL/SQL ব্যবহার করে একটি ট্রিগার নিষ্ক্রিয় করুন

একটি ট্রিগার নিষ্ক্রিয় করার প্রথম এবং সবচেয়ে সহজ পদ্ধতি হল একটি SQL স্টেটমেন্ট ব্যবহার করা। ভাগ্যক্রমে, ওরাকল আমাদের ALTER ট্রিগার বিবৃতি প্রদান করে যার সিনট্যাক্স নিম্নরূপ প্রদান করা হয়েছে:

ট্রিগার ট্রিগার_নাম অক্ষম করুন;

উদাহরণস্বরূপ, আমরা আগে তৈরি করা log_user ট্রিগারটি নিষ্ক্রিয় করতে, আমরা নিম্নলিখিতগুলি চালাতে পারি:

alter trigger log_user নিষ্ক্রিয় করুন;

একবার কার্যকর হয়ে গেলে, ট্রিগারটি আর পুরানো ডেটার একটি অনুলিপি এবং ব্যবহারকারীর কাছে থাকবে না যেটি নিম্নলিখিত হিসাবে দেখানো হয়েছে:

স্যাম্পল_ডেটা থেকে মুছে দিন যেখানে id = 2;

লগগুলি পরীক্ষা করুন:

নমুনা_ডেটা_লগ থেকে * নির্বাচন করুন;

আউটপুট:

আমরা দেখতে পাচ্ছি, আমাদের এখনও একটি মাত্র রেকর্ড আছে।

SQL বিকাশকারী ব্যবহার করে একটি ট্রিগার নিষ্ক্রিয় করুন

আমরা গ্রাফিক্যাল ইন্টারফেসে একটি ট্রিগার নিষ্ক্রিয় করতে SQL বিকাশকারী ইউটিলিটি ব্যবহার করতে পারি। SQL বিকাশকারীতে লগ ইন করে শুরু করুন।

'ট্রিগার' বিভাগে নেভিগেট করুন:

ট্রিগার ডিরেক্টরি প্রসারিত করুন এবং ট্রিগারটি সনাক্ত করুন যা আপনি নিষ্ক্রিয় করতে চান। ট্রিগার নামের উপর ডান ক্লিক করুন এবং 'অক্ষম করুন' নির্বাচন করুন।

'অক্ষম' অপারেশন নিশ্চিত করুন এবং 'প্রয়োগ করুন' ক্লিক করুন।

একবার অক্ষম হয়ে গেলে, ওরাকল ট্রিগারটিকে ধূসর করে দেয়, ইঙ্গিত করে যে এটি নিষ্ক্রিয়।

উপসংহার

এই নিবন্ধটি PL/SQL স্টেটমেন্ট এবং SQL ডেভেলপার ইউটিলিটি ব্যবহার করে কীভাবে একটি ওরাকল ট্রিগার নিষ্ক্রিয় করতে হয় তা অনুসন্ধান করা হয়েছে।