با استفاده از SIGNAL (در MySQL) یا RAISERROR (در SQL Server) یک trigger بنویسید که هنگام درج رکوردی با مقدار منفی در ستون amount، درج را متوقف کرده و یک پیام خطای سفارشی صادر کند و همزمان اطلاعات خطا (مثل id، مقدار، زمان و پیام) را در جدول log_errors ذخیره نماید.
5.0 بازدید آخرین ویرایش در 209 روز قبل ساعت 09:10 0.0
برای حل این مسئله یک جدول نمونه (مثلاً transactions) و یک جدول log_errors برای نگهداری لاگ خطا بسازید، سپس یک trigger از نوع BEFORE INSERT (در MySQL) یا INSTEAD OF/AFTER INSERT با منطق مناسب در SQL Server ایجاد کنید که اگر NEW.amount
3 پاسخ
جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من
در حال بارگیری...
برای ارسال پاسخ باید با حساب کاربری وارد شوید.
ورود به حساب کاربری
برای جلوگیری از درج مقدار منفی در ستون amount، از یک BEFORE INSERT در MySQL یا INSTEAD OF/AFTER INSERT در SQL Server استفاده کنید تا قبل یا همزمان با درج، لاگ خطا ثبت و عملیات متوقف شود. مطمئن شوید جدول log_errors شامل ستونهای لازم مانند id، amount، time و پیام است و trigger مقدار مربوطه را از NEW.amount (MySQL) یا INSERTED.amount (SQL Server) ثبت میکند. در MySQL از SIGNAL SQLSTATE '45000' استفاده کنید تا پیام کاربری صادر شود و با ثبت لاگ، اجرای INSERT خاتمه یابد. در SQL Server از RAISERROR با سطح severity مناسب (مثلاً 16) استفاده کنید و در صورت نیاز TRANSACTION را ROLLBACK کرده یا از خروج از trigger استفاده کنید تا هم لاگ و هم پیام خطا منطبق باشند.
گزارش