ভিডিও: Raise_application_error রোলব্যাক করে?
2024 লেখক: Lynn Donovan | [email protected]. সর্বশেষ পরিবর্তিত: 2023-12-15 23:44
একটি ট্রিগার ভিতরে a RAISE_APPLICATION_ERROR করে সঞ্চালন না a রোলব্যাক , এটি বর্তমান ক্রিয়াকলাপ বাতিল করে, যেমন একটি একক আপডেট/ইনসার্ট/ডিলিট। ক রোলব্যাক বর্তমান লেনদেনের মধ্যে সমস্ত পরিবর্তন ফিরিয়ে দেয় (বা প্রদত্ত সেভপয়েন্ট পর্যন্ত), এটি ভিন্ন।
এইভাবে, Raise_application_error কি?
উত্তরটি raise_application_error আসলে ওরাকল দ্বারা সংজ্ঞায়িত একটি পদ্ধতি যা বিকাশকারীকে একটি ব্যতিক্রম উত্থাপন করতে এবং পদ্ধতির সাথে একটি ত্রুটি নম্বর এবং বার্তা যুক্ত করতে দেয়। ওরাকল প্রদান করে raise_application_error পদ্ধতি যা আপনাকে আপনার অ্যাপ্লিকেশনের মধ্যে কাস্টম ত্রুটি সংখ্যা বাড়াতে অনুমতি দেয়।
উপরন্তু, একটি ট্রিগারের ভিতরে একটি রোলব্যাক বিবৃতি কার্যকর করা হলে কী হবে? যখন ট্রিগার বর্তমান লেনদেন এখনও সম্পূর্ণ হয়নি fires. যেহেতু COMMIT তাদের অনুমতি দিয়ে একটি লেনদেন বন্ধ করে দেয় ট্রিগার হবে কাজের ইউনিট ভাঙ্গুন। তাই পরিবর্তন একটি ট্রিগার মৃত্যুদন্ড কার্যকর করা হয়েছে মালিকানার লেনদেন দ্বারা প্রতিশ্রুতিবদ্ধ (বা ফিরে আসা) যা ডিএমএল জারি করেছে যা বহিস্কার করেছে ট্রিগার.
এর থেকে, প্রাগমা ব্যতিক্রম_ইনিট এবং রাইস_অ্যাপ্লিকেশন_এরর মধ্যে পার্থক্য কী?
pragma ব্যতিক্রম init একটি ওরাকল ত্রুটিকে একটি নামযুক্ত ব্যতিক্রমে পরিণত করে। যদি একটি ডাটাবেস অপারেশন একটি ORA-00054 "রিসোর্স ব্যস্ত" বাড়ায়, তাহলে আপনাকে কোড করতে হবে:. উত্থাপন_আবেদন_ত্রুটি একটি ত্রুটি বাড়াতে ব্যবহৃত হয় - ব্যতিক্রম_ইনিট ত্রুটিগুলি মোকাবেলা করতে ব্যবহৃত হয় (আমি অনুমান করি আপনি বলতে পারেন যে তারা বিপরীত এ উপায়)।
Sqlerrm কি?
SQLERRM ফাংশন। কাজ SQLERRM এর ত্রুটি-সংখ্যা আর্গুমেন্টের সাথে যুক্ত ত্রুটি বার্তাটি ফেরত দেয়। যদি যুক্তিটি বাদ দেওয়া হয়, তাহলে এটি SQLCODE-এর বর্তমান মানের সাথে সম্পর্কিত ত্রুটি বার্তা প্রদান করে। SQLERRM কোন যুক্তি ছাড়া শুধুমাত্র একটি ব্যতিক্রম হ্যান্ডলারে দরকারী.
প্রস্তাবিত:
পরিবর্তন ব্যবস্থাপনায় একটি রোলব্যাক পরিকল্পনা কি?
একটি রোলব্যাক প্ল্যানের উদ্দেশ্য (এর জন্য অন্য কোন শব্দ অর্থহীন) নথিভুক্ত করা যে পরিবর্তনের স্থাপনার সময় প্রতিটি পয়েন্টে, আপনি স্থাপনা বন্ধ করতে পারেন এবং একটি পরিচিত-ভাল অবস্থায় ফিরে যেতে পারেন।
কিভাবে রোলব্যাক SQL সার্ভারে কাজ করে?
লেনদেনের শুরুতে বা লেনদেনের ভিতরে একটি সেভপয়েন্টে একটি স্পষ্ট বা অন্তর্নিহিত লেনদেনকে রোল ব্যাক করে। লেনদেনের শুরু থেকে বা একটি সেভপয়েন্টে করা সমস্ত ডেটা পরিবর্তন মুছে ফেলতে আপনি রোলব্যাক ট্রানজ্যাকশন ব্যবহার করতে পারেন। এটি লেনদেনের দ্বারা অনুষ্ঠিত সংস্থানগুলিকেও মুক্ত করে
লেনদেন ব্যবস্থাপনায় ডিফল্ট রোলব্যাক নীতি কি?
এর ডিফল্ট কনফিগারেশনে, স্প্রিং ফ্রেমওয়ার্কের লেনদেন পরিকাঠামো কোড শুধুমাত্র রানটাইমের ক্ষেত্রে রোলব্যাকের জন্য একটি লেনদেন চিহ্নিত করে, টিক চিহ্ন না দেওয়া ব্যতিক্রম; অর্থাৎ, যখন নিক্ষেপ করা ব্যতিক্রমটি RuntimeException-এর একটি উদাহরণ বা উপশ্রেণী। (ত্রুটিগুলিও হবে - ডিফল্টরূপে - একটি রোলব্যাকের ফলে)
আমি কিভাবে লারাভেলে রোলব্যাক করব?
আপনি যে মাইগ্রেশনটি সর্বোচ্চে রোলব্যাক করতে চান তার ব্যাচ নম্বরটি পরিবর্তন করুন। মাইগ্রেট চালান: রোলব্যাক। ডিবি-তে যান এবং আপনার-নির্দিষ্ট-মাইগ্রেশনের জন্য মাইগ্রেশন এন্ট্রি মুছুন/পুনঃনামকরণ করুন। আপনার-নির্দিষ্ট-মাইগ্রেশন দ্বারা তৈরি টেবিলটি ফেলে দিন। php artisan migrate --path=/database/migrations/your-specific-migration চালান। php
এন্টিটি ফ্রেমওয়ার্ক কোরে আমি কিভাবে রোলব্যাক মাইগ্রেশন করব?
শেষ প্রয়োগকৃত মাইগ্রেশন প্রত্যাবর্তন করতে আপনার উচিত (প্যাকেজ ম্যানেজার কনসোল কমান্ড): ডাটাবেস থেকে মাইগ্রেশন প্রত্যাবর্তন করুন: PM> আপডেট-ডেটাবেস প্রকল্প থেকে মাইগ্রেশন ফাইল সরান (অথবা এটি পরবর্তী ধাপে আবার প্রয়োগ করা হবে) মডেল স্ন্যাপশট আপডেট করুন: PM> সরান-মাইগ্রেশন