Database trigger
ஒரு தரவுத்தள தூண்டுதல் என்பது ஒரு குறிப்பிட்ட அட்டவணையில் அல்லது தரவுத்தளத்தில் உள்ள பார்வையில் சில நிகழ்வுகளுக்கு பதிலளிக்கும் வகையில் தானாகவே செயல்படுத்தப்படும் நடைமுறைக் குறியீடாகும். இந்தத் தூண்டுதல் பெரும்பாலும் தரவுத்தளத்தில் உள்ள தகவலின் ஒருமைப்பாட்டைப் பராமரிக்கப் பயன்படுத்தப்படுகிறது. எடுத்துக்காட்டாக, ஒரு புதிய பதிவு (ஒரு புதிய தொழிலாளியைக் குறிக்கும்) ஊழியர்களின் அட்டவணையில் சேர்க்கப்படும்போது, வரிகள், விடுமுறை நாட்கள் மற்றும் சம்பள அட்டவணைகளிலும் புதிய பதிவுகள் உருவாக்கப்பட வேண்டும். எடுத்துக்காட்டாக, ஊழியர்களின் முந்தைய சம்பளத்தைக் கண்காணிக்க, வரலாற்றுத் தரவைப் பதிவு செய்வதற்கும் தூண்டுதல்களைப் பயன்படுத்தலாம். டிபிஎம்எஸ் இல் உள்ள தூண்டுதல்கள் சில பிரபலமான டிபிஎம்எஸ் ஆதரவு எவ்வாறு தூண்டுகிறது என்பதற்கான தொடர்ச்சியான விளக்கங்களை கீழே பின்பற்றுகிறது. ஆரக்கிள் தரவு மாற்றியமைக்கப்படும்போது அந்த தீயைத் தூண்டுவதோடு (பி. எல்/எஸ். க்யூ. எல் குறியீட்டை இயக்குகிறது), ஸ்கீமா-நிலை பொருள்கள் (அதாவது, அட்டவணைகள்) மாற்றியமைக்கப்படும்போது மற்றும் பயனர் லோகோன் அல்லது லாக்ஆஃப் நிகழ்வுகள் நிகழும்போது தீயைத் தூண்டுவதை ஆரக்கிள் 10ஜி ஆதரிக்கிறது. நான்கு முக்கிய வகையான தூண்டுதல்கள்ஃ வரிசை-நிலை தூண்டுதல்ஃ ஒரு வரிசையின் எந்த நெடுவரிசை மதிப்பும் நெடுவரிசை-நிலை தூண்டுதலை மாற்றுவதற்கு முன்னும் பின்னும் இது செயல்படுத்தப்படுகிறதுஃ குறிப்பிட்ட நெடுவரிசை மாற்றங்களுக்கு முன்னும் பின்னும் இது செயல்படுத்தப்படுகிறது ஒவ்வொரு வரிசை வகைக்கும்ஃ இந்த தூண்டுதல் ஒரு செருகல்/புதுப்பித்தல்/நீக்குதலால் பாதிக்கப்பட்ட முடிவு தொகுப்பின் ஒவ்வொரு வரிசைக்கும் ஒரு முறை செயல்படுத்தப்படுகிறது ஒவ்வொரு அறிக்கை வகைக்கும்ஃ இந்த தூண்டுதல் முழு முடிவு தொகுப்புக்கும் ஒரு முறை மட்டுமே செயல்படுத்தப்படுகிறது, ஆனால் ஒவ்வொரு முறையும் அறிக்கை செயல்படுத்தப்படும் போது சுடுகிறது. அமைப்பு-நிலை தூண்டுதல்கள் ஆரக்கிள் 8i இலிருந்து, தரவுத்தள நிகழ்வுகள்-லோகோன்கள், லாக்ஆஃப்கள், தொடக்கங்கள்-ஆரக்கிள் தூண்டுதல்களை இயக்கலாம். மைக்ரோசாப்ட் எஸ். க்யூ. எல் சர்வர் டி. டி. எல் தூண்டுதல்களுக்கான மைக்ரோசாப்ட் எஸ். க்யூ. எல் சர்வரில் கிடைக்கக்கூடிய அனைத்து துப்பாக்கிச் சூடு நிகழ்வுகளின் பட்டியலும் மைக்ரோசாப்ட் டாக்ஸில் கிடைக்கிறது. தூண்டுதல்களில் நிபந்தனை நடவடிக்கைகளைச் செய்வது (அல்லது மாற்றத்தைத் தொடர்ந்து தரவைச் சோதிப்பது) தற்காலிகமாக செருகப்பட்ட மற்றும் நீக்கப்பட்ட அட்டவணைகளை அணுகுவதன் மூலம் செய்யப்படுகிறது. போஸ்ட்கிரேஎஸ்கியூஎல் 1997 இல் தூண்டுதல்களுக்கான ஆதரவை அறிமுகப்படுத்தியது. SQL இல் பின்வரும் செயல்பாடுஃ 2003 முன்பு போஸ்ட்கிரேஎஸ்கியூஎல் இல் செயல்படுத்தப்படவில்லைஃ குறிப்பிட்ட நெடுவரிசைகளுக்கான புதுப்பிப்புகளில் தூண்டுதல்களைத் தூண்டுவதற்கு SQL அனுமதிக்கிறது; போஸ்ட்கிரேஎஸ்கியூஎல் பதிப்பு 9 இன் படி இந்த அம்சம் போஸ்ட்கிரேஎஸ்கியூஎல் இல் செயல்படுத்தப்படுகிறது. தூண்டப்பட்ட செயலாக CREATE TABLE போன்ற SELECT, INSERT, UPDATE தவிர பல SQL அறிக்கைகளை செயல்படுத்த இந்த தரநிலை அனுமதிக்கிறது. கிரியேட் டேபிள் என்று அழைக்க ஒரு சேமிக்கப்பட்ட செயல்முறை அல்லது செயல்பாட்டை உருவாக்குவதன் மூலம் இதைச் செய்யலாம். கதை சுருக்கம்ஃ TRIGGER பெயர் {BEFORE | AFTER} {நிகழ்வு [அல்லது.] அட்டவணையில் [ஒவ்வொரு [EACH] [ROW | STATEMENT]] EXECUTE PROCEEDURE ஃபன்க்னேம் (வாதங்கள்) ஃபயர்பேர்ட் ஃபயர்பேர்ட் பல வரிசை-நிலை, முன் அல்லது பின், INSERT, UPDATE, DELETE (அல்லது அதன் எந்த கலவையும்) தூண்டுதல்களை ஒரு அட்டவணைக்கு ஆதரிக்கிறது, அங்கு அவை எப்போதும் இயல்புநிலை அட்டவணை மாற்றங்களுக்கு "கூடுதலாக" இருக்கும், மேலும் ஒருவருக்கொருவர் தொடர்புடைய தூண்டுதல்களின் வரிசையை தெளிவற்றதாக இருக்கும் இடத்தில் குறிப்பிடலாம் (நிலைப்பாடு பிரிவு). காட்சிகளில் தூண்டுதல்கள் இருக்கலாம், அங்கு அவை எப்போதும் தூண்டுதல்களுக்கு பதிலாக, இயல்புநிலை புதுப்பிக்கக்கூடிய பார்வை தர்க்கத்தை மாற்றுகின்றன. (பதிப்பு 2.1 க்கு முன்பு, புதுப்பிக்கத்தக்கதாகக் கருதப்படும் காட்சிகளின் தூண்டுதல்கள் இயல்புநிலை தர்க்கத்திற்கு கூடுதலாக இயங்கும்.) ஃபயர்பேர்ட் பிறழ்வு அட்டவணை விதிவிலக்குகளை (ஆரக்கிள் போன்றது) உயர்த்தாது, மேலும் தூண்டுதல்கள் இயல்பாகவே கூடு மற்றும் தேவைக்கேற்ப மீண்டும் செயல்படும் (SQL சர்வர் கூடு கட்ட அனுமதிக்கிறது, ஆனால் இயல்பாகவே மீண்டும் வருவதில்லை.) ஃபயர்பேர்டின் தூண்டுதல்கள் புதிய மற்றும் பழைய சூழல் மாறிகளைப் பயன்படுத்துகின்றன (செருகப்பட்ட மற்றும் நீக்கப்பட்ட அட்டவணைகள் அல்ல) மற்றும் தூண்டுதலின் தற்போதைய பயன்பாட்டைக் குறிக்க புதுப்பித்தல், சேமிப்பு மற்றும் நீக்குதல் கொடிகளை வழங்குகின்றன. {CREATE | RECRIATE | CREATE OR ALTER} டிரைகர் பெயர் {அட்டவணை பெயர் | பார்வை பெயர்} [ACTIVE | INACTIVE] {BEFORE | AFTER} {INSERT [OR UPDATE] [OR DELETE] | UPDATE [OR INSERT] [OR DELETE] | DELETE [OR UPDATE] [OR INSERT]] [POSITIEN N] தொடங்கும் போது. முடிவு பதிப்பு 2.1 இன் படி, ஃபயர்பேர்ட் கூடுதலாக பின்வரும் தரவுத்தள நிலை தூண்டுதல்களை ஆதரிக்கிறதுஃ இணைப்பு (இங்கே எழுப்பப்பட்ட விதிவிலக்குகள் இணைப்பை முடிப்பதைத் தடுக்கின்றன) ஒரு டிரான்ஸாக்ஷன் கமிட் தூண்டுதலில் ஒரு விதிவிலக்கு எழுப்பப்பட்டால், இதுவரை தூண்டுதலால் செய்யப்பட்ட மாற்றங்கள் திரும்பப் பெறப்பட்டு கிளையன்ட் பயன்பாட்டிற்கு அறிவிக்கப்படும், ஆனால் பரிவர்த்தனை ஒருபோதும் கோரப்படவில்லை என்பது போல் செயலில் உள்ளது; கிளையன்ட் பயன்பாடு தொடர்ந்து மாற்றங்களைச் செய்து மறு கோரிக்கை கமிட்டைச் செய்யலாம். தரவுத்தள தூண்டுதல்களுக்கான சொற்றொடர்ஃ {CREATE | RECREATE | CREATE or ALTER} TRIGGER பெயர் [ACTIVE | INACTIVE] ஆன் {CONNECT | DISCONNNNECT | TRANSACTIN START | TRANSACTIN COMMIT | TRANSACTIN ROLLBACK} [POSITIN n] தொடக்கத்தில். MySQL/MariaDB DBMS இல் உள்ள தூண்டல்களுக்கான MySQL/MariaDB வரையறுக்கப்பட்ட ஆதரவு 2005 இல் தொடங்கப்பட்ட MySQL இன் 5 பதிப்பில் சேர்க்கப்பட்டது. பதிப்பு 8 வரை, அவை டி. டி. எல் (தரவு வரையறை மொழி) தூண்டுதல்களையும், டி. எம். எல் (தரவு கையாளுதல் மொழி) தூண்டுதல்களையும் அனுமதிக்கின்றன. தூண்டுதல்களை வரையறுக்க டி. டி. எல் தூண்டுதலின் (பின் அல்லது முன்) வகையையும் அவை அனுமதிக்கின்றன. அவை CREATE TRIGGER என்ற உட்பிரிவைப் பயன்படுத்தி உருவாக்கப்பட்டு DROP TRIGGER என்ற உட்பிரிவைப் பயன்படுத்தி நீக்கப்படுகின்றன. ஒரு நிகழ்வு நிகழ்கிறது என்று அழைக்கப்படும் அறிக்கை FOR EAH ROW என்ற உட்பிரிவுக்குப் பிறகு வரையறுக்கப்படுகிறது, அதைத் தொடர்ந்து ஒரு முக்கிய சொல் (SET அல்லது BEGIN) உள்ளது, இது பின்வருவது முறையே ஒரு வெளிப்பாடு அல்லது ஒரு அறிக்கையா என்பதைக் குறிக்கிறது. LUW க்கான DB2 என அழைக்கப்படும் விநியோகிக்கப்பட்ட அமைப்புகளுக்கான IBM DB2 (LUW என்றால் லினக்ஸ், யுனிக்ஸ், விண்டோஸ்) மூன்று தூண்டுதல் வகைகளை ஆதரிக்கிறதுஃ தூண்டுதலுக்கு முன், தூண்டுதலுக்குப் பிறகு மற்றும் தூண்டுதலுக்கு பதிலாக. அறிக்கை நிலை மற்றும் வரிசை நிலை தூண்டுதல்கள் இரண்டும் ஆதரிக்கப்படுகின்றன. மேசையில் அதே செயல்பாட்டிற்கு அதிக தூண்டுதல்கள் இருந்தால், தூண்டுதல் வரிசை தூண்டுதல் உருவாக்கம் தரவுகளால் தீர்மானிக்கப்படுகிறது. பதிப்பு 9.7 முதல் ஐபிஎம் டிபி2 தன்னாட்சி பரிவர்த்தனைகளை ஆதரிக்கிறது. தூண்டுதலுக்கு முன் தரவைச் சரிபார்த்து, செயல்பாட்டை அனுமதிக்க வேண்டுமா என்பதைத் தீர்மானிப்பதாகும். தூண்டுதலுக்கு முன் விதிவிலக்கு வீசப்பட்டால், செயல்பாடு நிறுத்தப்படும் மற்றும் தரவு மாற்றப்படாது. DB2 இல் தூண்டுதல்கள் படிக்க மட்டுமே முன்-தூண்டுதல்கள் முன் நீங்கள் தரவு மாற்ற முடியாது. தூண்டுதல்களுக்குப் பிறகு கோரப்பட்ட மாற்றம் செய்யப்பட்ட பிறகு பிந்தைய செயலாக்கத்திற்காக வடிவமைக்கப்பட்டுள்ளன. தூண்டுதல்கள் தரவை அட்டவணைகளில் எழுதலாம் மற்றும் வேறு சில தரவுத்தளங்களைப் போலல்லாமல், தூண்டுதல் செயல்படும் அட்டவணை உட்பட எந்த அட்டவணையிலும் நீங்கள் எழுதலாம். தூண்டுதல்களுக்கு பதிலாக பார்வைகளை எழுதக்கூடியதாக மாற்றுவதாகும். தூண்டுதல்கள் பொதுவாக எஸ். க்யூ. எல். பி. எல் மொழியில் திட்டமிடப்படுகின்றன. SQLite CREATE [TEMP | TEMPORARY] TRIGGER [இல்லையென்றால் EXISTS] [தரவுத்தள பெயர்.] தூண்டல் _ பெயர் [முன் | பின் | நிறுவல்] {DELETE | INSERT | புதுப்பிக்கவும் [OF நெடுவரிசை _ பெயர் [, நெடுவரிசை _ பெயர்].]} ஆன் {அட்டவணை _ பெயர் | பார்வை _ பெயர்} [ஒவ்வொரு ரோவிற்கும்] [நிபந்தனை எப்போது கட்டாயமாகும்] தொடங்குங்கள். எண்ட் ஸ்கொலைட் வரிசை-நிலை தூண்டுதல்களை மட்டுமே ஆதரிக்கிறது, அறிக்கை-நிலை தூண்டுதல்களை அல்ல. SQLite இல் ஆதரிக்கப்படாத புதுப்பிக்கக்கூடிய காட்சிகளை INSTEAD OF தூண்டுதல்களுடன் பின்பற்றலாம். XML தரவுத்தளங்கள் உறவு அல்லாத தரவுத்தளத்தில் தூண்டுதல்களை செயல்படுத்துவதற்கான ஒரு எடுத்துக்காட்டு செட்னாவாக இருக்கலாம், இது XQuery ஐ அடிப்படையாகக் கொண்ட தூண்டுதல்களுக்கு ஆதரவை வழங்குகிறது. செட்னாவில் உள்ள தூண்டுதல்கள் SQL: 2003 தூண்டுதல்களுக்கு ஒத்ததாக வடிவமைக்கப்பட்டுள்ளன, ஆனால் XML வினவல் மற்றும் புதுப்பிப்பு மொழிகளை (XPath, XQuery மற்றும் XML புதுப்பிப்பு மொழி) அடிப்படையாகக் கொண்டவை. தரவுத்தளத்தில் சேமிக்கப்படும் எக்ஸ்எம்எல் ஆவணத்தின் எந்த முனைகளிலும் செட்னாவில் ஒரு தூண்டுதல் அமைக்கப்படுகிறது. இந்த முனைகள் புதுப்பிக்கப்படும்போது, தூண்டுதல் தானாகவே XQuery வினவல்கள் மற்றும் அதன் உடலில் குறிப்பிடப்பட்ட புதுப்பிப்புகளை செயல்படுத்துகிறது. எடுத்துக்காட்டாக, இந்த நபரால் குறிப்பிடப்பட்ட ஏதேனும் திறந்த ஏலம் இருந்தால் பின்வரும் தூண்டுதல் நபர் முனை நீக்குதலை ரத்துசெய்கிறதுஃ CREATE TRIGGER "தூண்டுதல் 3" DELETE ON DOC ("ஏலம்")/தளம்// ஒவ்வொரு நபருக்கும் செயலிழக்கச் செய்வதற்கு முன்பு (இருந்தால் ($WHERE// ஓபன் _ ஏலம்/ஏலதாரர்/நபர்/@person = $OLD/@id) பின்னர் () மற்ற $OLD;} வரிசை மற்றும் அறிக்கை நிலை தூண்டுதல்கள் தூண்டுதல் நடத்தை எவ்வாறு செயல்படுகிறது என்பதைப் புரிந்துகொள்ள, நீங்கள் இரண்டு முக்கிய வகையான தூண்டுதல்களைப் பற்றி விழிப்புடன் இருக்க வேண்டும்; இவை வரிசை மற்றும் அறிக்கை நிலை தூண்டுதல்கள். இரண்டிற்கும் உள்ள வேறுபாடு என்னவென்றால், தூண்டுதலுக்குள் உள்ள குறியீடு எத்தனை முறை செயல்படுத்தப்படுகிறது, எந்த நேரத்தில் செயல்படுத்தப்படுகிறது. உங்களிடம் ஒரு தூண்டுதல் உள்ளது என்று வைத்துக்கொள்வோம், அது ஒரு குறிப்பிட்ட அட்டவணைக்கு புதுப்பிப்பில் அழைக்கப்படுகிறது. புதுப்பிப்பால் பாதிக்கப்பட்ட ஒவ்வொரு வரிசைக்கும் வரிசை நிலை தூண்டுதல்கள் ஒரு முறை செயல்படுத்தப்படும். UPDATE கட்டளையால் எந்த வரிசைகளும் பாதிக்கப்படாவிட்டால், தூண்டுதல் தூண்டுதலுக்குள் எந்த குறியீட்டையும் இயக்காது என்பதை நினைவில் கொள்வது அவசியம். புதுப்பிப்பால் எத்தனை வரிசைகள் பாதிக்கப்படுகின்றன என்பதைப் பொருட்படுத்தாமல் அறிக்கை நிலை தூண்டுதல்கள் ஒரு முறை அழைக்கப்படும். UPDATE கட்டளை எந்த வரிசைகளையும் பாதிக்கவில்லை என்றாலும், தூண்டுதலுக்குள் உள்ள குறியீடு இன்னும் ஒரு முறை செயல்படுத்தப்படும் என்பதை இங்கே கவனத்தில் கொள்ள வேண்டும். முன் மற்றும் பின் விருப்பங்களைப் பயன்படுத்தி தூண்டுதல் எப்போது அழைக்கப்படுகிறது என்பதை தீர்மானிக்கவும். உங்களிடம் ஒரு தூண்டுதல் உள்ளது என்று வைத்துக்கொள்வோம், அது ஒரு குறிப்பிட்ட அட்டவணைக்கு INSERT இல் அழைக்கப்படுகிறது. உங்கள் தூண்டுதல் BEFORE விருப்பத்தைப் பயன்படுத்துகிறது என்றால், அட்டவணையில் INSERT ஏற்படுவதற்கு முன்பு தூண்டுதலுக்குள் உள்ள குறியீடு செயல்படுத்தப்படும். INSERT இன் உள்ளீட்டு மதிப்புகளை சரிபார்க்க அல்லது அதற்கேற்ப மதிப்புகளை மாற்றுவது BEFORE தூண்டுதலின் பொதுவான பயன்பாடாகும். இப்போது அதற்கு பதிலாக AFTER ஐப் பயன்படுத்தும் ஒரு தூண்டுதல் எங்களிடம் உள்ளது என்று வைத்துக்கொள்வோம். அட்டவணையில் INSERT ஏற்பட்ட பிறகு தூண்டுதலுக்குள் உள்ள குறியீடு செயல்படுத்தப்படுகிறது. இந்த தூண்டுதலின் ஒரு எடுத்துக்காட்டு பயன்பாடு, தரவுத்தளத்தில் யார் செருகியுள்ளனர் என்பதற்கான தணிக்கை வரலாற்றை உருவாக்குகிறது, செய்யப்பட்ட மாற்றங்களைக் கண்காணிக்கிறது. இந்த விருப்பங்களைப் பயன்படுத்தும் போது நீங்கள் சில விஷயங்களை மனதில் கொள்ள வேண்டும். BEFORE விருப்பம் அட்டவணைகளை மாற்ற உங்களை அனுமதிக்காது, அதனால்தான் உள்ளீட்டு சரிபார்ப்பு ஒரு நடைமுறை பயன்பாடாகும். அஃப்டர் தூண்டுதல்களைப் பயன்படுத்துவது தணிக்கை வரலாறு அட்டவணையில் செருகுவது போன்ற அட்டவணைகளை மாற்ற உங்களை அனுமதிக்கிறது. அது அறிக்கையா அல்லது வரிசை மட்டமா என்பதைத் தீர்மானிக்க ஒரு தூண்டுதலை உருவாக்கும் போது, வரிசை மட்டத்திற்கான ஒவ்வொரு ROW உட்பிரிவுக்கும் FOR EACH ROW உட்பிரிவைச் சேர்க்கவும், அல்லது ஒரு வரிசை மட்டத்திற்கான உட்பிரிவைத் தவிர்க்கவும். உங்கள் தூண்டுதலுக்குள் கூடுதல் INSERT/UPDATE/DELETE கட்டளைகளைப் பயன்படுத்துவதில் எச்சரிக்கையாக இருங்கள், ஏனெனில் தூண்டுதல் மீண்டும் நிகழக்கூடும், இது தேவையற்ற நடத்தையை ஏற்படுத்துகிறது. கீழே உள்ள எடுத்துக்காட்டுகளில் ஒவ்வொரு தூண்டுதலும் வேறுபட்ட அட்டவணையை மாற்றியமைக்கிறது, மாற்றியமைக்கப்படுவதைப் பார்ப்பதன் மூலம் வெவ்வேறு தூண்டுதல் வகைகள் பயன்படுத்தப்படும்போது சில பொதுவான பயன்பாடுகளைக் காணலாம். பின்வருபவை ஒரு வரிசை நிலை தூண்டுதலின் ஆரக்கிள் தொடரியல் எடுத்துக்காட்டு ஆகும், இது பாதிக்கப்பட்ட ஒவ்வொரு ROW க்கும் ஒரு புதுப்பிப்புக்குப் பிறகு அழைக்கப்படுகிறது. தொலைபேசி புத்தக தரவுத்தளத்திற்கான புதுப்பிப்பில் இந்த தூண்டுதல் அழைக்கப்படுகிறது. தூண்டுதல் அழைக்கப்படும்போது அது ஃபோன் _ புக் _ ஆடிட் என்ற தனி அட்டவணையில் ஒரு உள்ளீட்டைச் சேர்க்கிறது. வரிசைமுறைகள் போன்ற திட்டப் பொருட்களைப் பயன்படுத்திக் கொள்ளக்கூடிய தூண்டுதல்களையும் கவனத்தில் கொள்ளுங்கள், இந்த எடுத்துக்காட்டில் audit_id_sequence.nexVal ஃபோன் _ புக் _ ஆடிட் அட்டவணையில் தனித்துவமான முதன்மை விசைகளை உருவாக்கப் பயன்படுகிறது. TRIGGER தொலைபேசி _ புத்தக தணிக்கை உருவாக்கவும் அல்லது பிரதிநிதித்துவப்படுத்தவும் தொலைபேசி _ புத்தக தணிக்கை புதுப்பித்த பிறகு தொடங்கவும் தொலைபேசி _ புத்தக தணிக்கை (தணிக்கை _ ஐடி, தணிக்கை _ மாற்றம், தணிக்கை _ எல் _ பெயர், தணிக்கை _ எஃப் _ பெயர், தணிக்கை _ பழைய _ தொலைபேசி _ எண், தணிக்கை _ புதிய _ தொலைபேசி _ எண், தணிக்கை _ தேதி) மதிப்புகள் (audit_id_sequence.nextVal, 'புதுப்பித்தல்',: OLD.last_name,: OLD.first_name,: OLD.phone_number,: NEW.phone_number, SYSDATE); முடிவு; இப்போது 'ஜோன்ஸ்' என்ற கடைசி பெயரைக் கொண்ட நபர்களுக்கான தொலைபேசி _ புத்தக அட்டவணையில் புதுப்பித்தியை அழைக்கவும். ஃபோன் _ புக் செட் ஃபோன் _ நம்பர் = '111-111-1111' எங்கே கடைசி பெயர் = 'ஜோன்ஸ்'; ஃபோன் _ நம்பர் _ ஆடிட் அட்டவணை இப்போது இரண்டு உள்ளீடுகளுடன் நிரம்பியுள்ளது என்பதைக் கவனியுங்கள். தரவுத்தளத்தில் 'ஜோன்ஸ்' என்ற கடைசி பெயருடன் இரண்டு உள்ளீடுகள் இருப்பதால் இது ஏற்படுகிறது. புதுப்பிப்பு இரண்டு தனித்தனி வரிசை மதிப்புகளை மாற்றியமைத்ததால், உருவாக்கப்பட்ட தூண்டுதல் இரண்டு முறை அழைக்கப்பட்டது; ஒவ்வொரு மாற்றத்திற்கும் ஒரு முறை. பின்னர்-அறிக்கை-நிலை தூண்டுதல் ஃபோன் _ புக் அட்டவணையில் புதுப்பித்த பிறகு அழைக்கப்படும் ஆரக்கிள் தொடரியல் அறிக்கை தூண்டுதல். தூண்டுதல் அழைக்கப்படும்போது அது ஃபோன் _ புக் _ எடிட் _ ஹிஸ்டரி அட்டவணையில் செருகுகிறது கிரியேட் அல்லது ரிப்ளேஸ் ட்ரைகர் ஃபோன் _ புக் _ ஹிஸ்டரி ஃபோன் _ புக் பெகின் இன்டூ ஃபோன் _ புக் _ எடிட் _ ஹிஸ்டரி (ஆடிட் _ ஹிஸ்டரி _ ஐடி, பயனர்பெயர், மாற்றம், எடிட் _ தேதி) மதிப்புகள் (audit_history_id_sequence.nextVal, பயனர், 'புதுப்பிப்பு', சிஸ்டேட்); முடிவு; இப்போது மேலே உள்ள உதாரணத்தைப் போலவே அதே புதுப்பிப்பைச் செய்கிறது, இருப்பினும் இந்த முறை ஒரு அறிக்கை நிலை தூண்டுதலுடன். புதுப்பி தொலைபேசி _ புத்தகம் செட் தொலைபேசி _ எண் = '111-111-1111' எங்கே கடைசி _ பெயர் = 'ஜோன்ஸ்'; புதுப்பிப்பு இரண்டு வரிசைகளை மாற்றியிருந்தாலும், தூண்டுதல் ஒரு முறை மட்டுமே அழைக்கப்பட்டது என்பதை முடிவு காட்டுகிறது. ஒவ்வொரு-வரிசை-நிலை தூண்டுதலுக்கும் முன் இந்த எடுத்துக்காட்டு ஒவ்வொரு ROW தூண்டுதலுக்கும் முன் ஒரு WHEN நிபந்தனையைப் பயன்படுத்தி INSERT ஐ மாற்றியமைக்கிறது. கடைசி பெயர் 10 எழுத்துக்களை விட பெரியதாக இருந்தால், சப்ஸ்டர் செயல்பாட்டைப் பயன்படுத்தி கடைசி பெயர் நெடுவரிசை மதிப்பை சுருக்கமாக மாற்றுகிறோம். (LENGTH (new.last_name)> 10) தொடக்கம்ஃ new.last_name: = SABSTR (: new.last_name, 0,1); முடிவு; இப்போது ஒரு பெரிய பெயரைக் கொண்ட ஒருவரின் INSERT ஐச் செய்கிறார். INSERT INTO ஃபோன் _ புக் மதிப்புகள் (6, 'வெரி வெரி லாங் லாஸ்ட் நேம்', 'எரின்', 'மினியாபோலிஸ்', 'எம்என்', '989 யுனிவர்சிட்டி டிரைவ்', '123-222-4456', 55408, டோடேட் ('11/21/1991', 'எம்எம்/டிடி/ஒய்ஒய்ஒய்ஒய்ஒய்ஒய்ஒய்ஒய்ஒய்ஒய்ஒய்ஒய்ஒய்ஒய்ஒய்ஒய்ஒய்ஒய்ஒய்ஒய்ஒய்ஒய்ஒய்ஒய்ஒய்ஒய்ஒய்ஒய்ஒய்ஒய்ஒய்ஒய்ஒய்ஒய்ஒய்ஒய்ஒய்ஒய்ஒய்ஒய்ஒய்ஒய்ஒய்ஒய்ஒய்ஒய்ஒய்ஒய்ஒய்ஒய்ஒய்ஒய்ஒய்ஒய்ஒய்ஒய்ஒய்ஒய்ஒய்ஒய்ஒய்ஒய்ஒய்ஒய்ஒய்ஒய்ஒய்ஒய்ஒய்ஒய்ஒய்ஒய்ஒய்ஒய்ஒய்ஒய்ஒய்ஒய்ஒய்ஒய்ஒய்ஒய்ஒய் முன்-அறிக்கை-நிலை தூண்டுதல் தரவுத்தள கட்டுப்பாடுகளை அமல்படுத்தும்போது முன்-அறிக்கை தூண்டுதலைப் பயன்படுத்துவது குறிப்பாக பயனுள்ளதாக இருக்கும். டேபிள் ஃபோன் _ புக்கில் "சோமேசர்" என்ற பெயர் கொண்ட ஒருவர் மீது ஒரு கட்டுப்பாட்டை எவ்வாறு அமல்படுத்துவது என்பதை இந்த எடுத்துக்காட்டு நிரூபிக்கிறது. INSERT ON செய்வதற்கு முன் TRIGGGER Hauschbc ஐ உருவாக்குங்கள் அல்லது மறுபிரதி செய்யுங்கள் SOMEUSER.phone_book BEGIN REISE _ APLICATION _ ERROR (num =>-20050, msg => 'பிழைச் செய்தி இங்கே செல்கிறது. '); முடிவு; இப்போது, எந்தவொரு INSERT ஐ முயற்சித்த பிறகும் "SOMEUSER" உள்நுழையும்போது இந்த பிழைச் செய்தி காண்பிக்கும்ஃ SQL பிழைஃ ORA-20050: பிழைச் செய்தி இங்கே செல்கிறது. இது போன்ற தனிப்பயன் பிழைகள் எண் மாறியை என்ன வரையறுக்க முடியும் என்பதற்கு ஒரு கட்டுப்பாட்டைக் கொண்டுள்ளன. பல முன் வரையறுக்கப்பட்ட பிழைகள் காரணமாக இந்த மாறி-2000 முதல்-209 வரம்பில் இருக்க வேண்டும். குறிப்புகள் வெளிப்புற இணைப்புகள் மைக்ரோசாஃப்ட் எஸ். க்யூ. எல் சர்வர் டிராபர் மை. எஸ். க்யூ. எல் தரவுத்தளம் மை. எஸ். க்யூ. எல் டிபி. யைத் தூண்டுகிறது தூண்டுதல்களை உருவாக்குகிறது டி. பி. 2 கிரியேட் டிரைகர் அறிக்கை ஆரக்கிள் கிரியேட் டிரைகர் போஸ்ட்கிரே. எஸ். க்யூ. எல். கிரியேட் டிரைகர் ஆரக்கிள் பிறழ்வு அட்டவணை சிக்கல்களை நீக்குதல் கேஸ்கேட் எஸ். க்யூ. எல். ஐட் வினவல் மொழியுடன் உருவாக்குகிறதுஃ தூண்டுதல்கள் தரவுத்தள மேலாண்மை அமைப்புகள் (கம்ப்யூட்டிங்) நிகழ்வுகள் குறித்த டிரைகர் ஆரக்கிளின் ஆவணத்தை உருவாக்கவும் எடுத்துக்காட்டாக எஸ். க்யூ. எல் குறியீட்டைக் கொண்ட கட்டுரைகள்