কোনও আপডেটের পরে যদি পুরো সারি একই থাকে তবে ট্রিগারে কীভাবে চেক করবেন?


11

অবশ্যই আমি প্রতিটি কলামের সাথে এটির তুলনা করতে পেরেছিলাম:

if (old.column1 = new.column1 and old.column2 = new.column2...)

তবে ভবিষ্যতে আমি যদি আর একটি কলাম যুক্ত করি তবে এটি হার্ড কোডড এবং বজায় রাখা শক্ত হবে।

প্রতিটি কলাম ম্যানুয়ালি পরীক্ষা না করে সব কলাম একই থাকে কিনা তা পরীক্ষা করার কোনও উপায় আছে কি?



দুঃখিত তবে আমার ক্ষেত্রে EXCEPT কীভাবে ব্যবহৃত হবে? আমি পুরানো সারিটি নতুন সারি মানের সাথে তুলনা করার চেষ্টা করছি, আমি এক্সসিএপিটি-র যা জানি তার থেকে বিদ্যমান সারিগুলি দুটি প্রশ্নের সাথে তুলনা করতে ব্যবহৃত হয়,
ট্রিগারটির

আমি আপনার ডিবিএমএসের সাথে পরিচিত নই- পুরানো বাছাই বাদে নতুন নির্বাচন করার কোনও উপায় আছে কি? *? যদি সারি গণনা = 0, কোনও সারি পরিবর্তিত হয়নি
স্কট হজগিন

উত্তর:


15

আপনি কেবল oldএবং newরেকর্ডগুলির সাথে তুলনা করতে পারেন is not distinct fromযা নুল মানগুলি সঠিকভাবে পরিচালনা করে তা ব্যবহার করে (যদি সমস্ত কলামগুলি নল নয় এমন হিসাবে সংজ্ঞায়িত করা হয় তবে আপনি কেবল ব্যবহার করতে পারেন =বা <>)

if old is not distinct from new then 
   .... do something
end if;

কমপক্ষে একটি কলাম পরিবর্তন হয়েছে কিনা তা পরীক্ষা করতে একই কাজ করা যেতে পারে:

if old is distinct from new then 
   .... do something
end if;

কীভাবে NUL গুলি এই কনডিশনগুলি দ্বারা পরিচালিত হয়?
ypercubeᵀᴹ

@ ইয়পারকিউবᵀᴹ: ভালো কথা point আমি আমার উত্তর আপডেট।
a_horse_with_no_name

Thnx। আমি একটি দ্রুত চেক করেছি এবং মনে হচ্ছে old=newকেসটি ঠিক এর মতোই পরিচালনা করে old is not distinct from old। অন্য কথায়, আমি এমন কোনও মামলা খুঁজে পাইনি যেখানে old=newনুল ফলাফল দেয়। আমি এটা আশা করিনি!
ypercubeᵀᴹ

আমি মনে করি পার্থক্যটি হবে old <> newতবে আমি পুরোপুরি নিশ্চিত নই।
a_horse_with_no_name
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.