డేటాబేస్ ట్రిగ్గర్లు లేదా సంక్షిప్తంగా ట్రిగ్గర్లు, ఇచ్చిన డేటాబేస్ ఆబ్జెక్ట్లోని ఈవెంట్ యాక్టివిటీకి ప్రతిస్పందనగా అమలు చేయబడిన నిల్వ చేసిన విధానాలను సూచిస్తాయి.
ఇది ప్రామాణిక నిల్వ చేయబడిన విధానాల నుండి భిన్నంగా ఉంటుంది, దీనికి వినియోగదారు నుండి స్పష్టమైన ఆహ్వానం అవసరం. ట్రిగ్గర్లు స్వయంచాలకంగా ఉన్నందున, కనెక్ట్ చేయబడిన వినియోగదారు లేదా సర్వర్ స్థితితో సంబంధం లేకుండా పేర్కొన్న ఈవెంట్ సంభవించినప్పుడు అవి ట్రిగ్గర్ చేయబడతాయి లేదా తొలగించబడతాయి.
చాలా రిలేషనల్ డేటాబేస్లు చెల్లని లావాదేవీలను నిరోధించడం, ఈవెంట్ లాగింగ్, టేబుల్ యాక్సెస్ స్టాటిస్టిక్లను పొందడం మరియు రికార్డింగ్ చేయడం మరియు మరిన్ని వంటి ఆటోమేటెడ్ టాస్క్లను నిర్వహించడానికి ట్రిగ్గర్లను ఉపయోగిస్తాయి.
ట్రిగ్గర్ సృష్టించబడిన తర్వాత, అనుబంధిత ఈవెంట్ సంభవించినప్పుడల్లా అది ఎల్లప్పుడూ నడుస్తుంది. అయినప్పటికీ, మీరు ట్రిగ్గర్ను అమలు చేయకుండా తాత్కాలికంగా లేదా శాశ్వతంగా నిరోధించాలనుకోవచ్చు. ఇక్కడే ట్రిగ్గర్ డిసేబుల్ ఫీచర్ అమలులోకి వస్తుంది.
ఈ పోస్ట్ ఒరాకిల్ డేటాబేస్లో ట్రిగ్గర్ను నిలిపివేయడానికి శీఘ్ర మరియు సులభమైన దశల గురించి చర్చిస్తుంది. మీరు Oracle ట్రిగ్గర్లకు కొత్త అయితే మరియు ఒకదాన్ని ఎలా సృష్టించాలో తెలుసుకోవాలనుకుంటే, క్రింది లింక్ని తనిఖీ చేయండి:
https://linuxhint.com/oracle-create-trigger
టెస్ట్ ట్రిగ్గర్ను సృష్టిస్తోంది
ట్రిగ్గర్ను డిసేబుల్ చేసే పద్ధతుల గురించి చర్చించే ముందు, ప్రదర్శన ప్రయోజనాల కోసం నమూనా ట్రిగ్గర్ను సెటప్ చేద్దాం.
గమనిక : ఈ విభాగం డేటాబేస్ ట్రిగ్గర్లను ఎలా నిర్వచించాలో లేదా ఎలా ఉపయోగించాలో వివరించదు.
మేము తొలగింపు ఆపరేషన్ తర్వాత వినియోగదారు కార్యాచరణను లాగ్ చేసే ట్రిగ్గర్ను సృష్టించాలనుకుంటున్నాము. ఉదాహరణకు, చూపిన విధంగా సమాచారంతో మనకు నమూనా_డేటా పట్టిక ఉందని అనుకుందాం:
మేము ముందుగా ప్రతి తొలగింపు కార్యకలాపానికి సంబంధించిన లాగ్లను నిల్వ చేసే పట్టికను సృష్టించాలి.
పట్టిక స్కీమా క్రింది విధంగా ఉంది:
పట్టిక నమూనా_డేటా_లాగ్లను సృష్టించండి(గుర్తింపు సంఖ్య,
మొదటి_పేరు varchar2(50),
ip_address varchar2(20),
btc_address varchar2(50),
క్రెడిట్_కార్డ్ varchar2(50),
ఐడెంటిఫైయర్ varchar2(40),
delete_date తేదీ,
varchar2(20) ద్వారా తొలగించబడింది
);
తరువాత, మేము తొలగింపు ఈవెంట్ తర్వాత అమలు చేయబడిన ట్రిగ్గర్ను నిర్వచించాలి. ట్రిగ్గర్ నిర్వచనం క్రింది విధంగా అందించబడింది:
ట్రిగ్గర్ log_userని సృష్టించండి లేదా భర్తీ చేయండితొలగించిన తర్వాత
నమూనా_డేటాపై
ప్రతి అడ్డు వరుస కోసం
ప్రకటించండి
చర్య_వినియోగదారు పేరు varchar2(20);
ప్రారంభం
ద్వంద్వ నుండి యాక్షన్_యూజర్నేమ్లోకి వినియోగదారుని ఎంచుకోండి;
నమూనా_డేటా_లాగ్లలోకి చొప్పించండి
విలువలు (:OLD.id,
:OLD.మొదటి_పేరు,
:OLD.ip_address,
:OLD.btc_address,
:OLD.credit_card,
:OLD.ఐడెంటిఫైయర్,
సిస్డేట్,
చర్య_వినియోగదారు పేరు);
ముగింపు;
ట్రిగ్గర్ను పరీక్షించడానికి, చూపిన విధంగా నమూనా_డేటా పట్టిక నుండి తొలగింపు చర్యను చేద్దాం:
id = 1 ఉన్న సాంపిల్_డేటా నుండి తొలగించండి;చివరగా, తొలగింపు ఆపరేషన్ రికార్డ్ చేయబడిందని నిర్ధారించుకోవడానికి మేము లాగ్ల పట్టికను తనిఖీ చేయవచ్చు:
నమూనా_డేటా_లాగ్ల నుండి * ఎంచుకోండి;అవుట్పుట్:
మేము చూడగలిగినట్లుగా, పట్టికలో తొలగింపుకు ముందు మునుపటి డేటా నమోదు, అలాగే తొలగింపు కార్యాచరణను ప్రదర్శించిన వినియోగదారు పేరు మరియు తొలగింపు సమయం ఉన్నాయి.
కింది విభాగాలలో, మునుపటి ట్రిగ్గర్ను ఎలా డిసేబుల్ చేయాలో మేము ప్రదర్శిస్తాము. అలా చేసే ముందు, మీ టార్గెట్ ట్రిగ్గర్ ఫంక్షనల్గా ఉందని మరియు దానిని ఎనేబుల్ చేయడానికి లేదా డిసేబుల్ చేయడానికి మీకు తగిన అనుమతులు ఉన్నాయని నిర్ధారించుకోండి.
PL/SQLని ఉపయోగించి ట్రిగ్గర్ను నిలిపివేయండి
ట్రిగ్గర్ను నిలిపివేయడానికి మొదటి మరియు అత్యంత సరళమైన పద్ధతి SQL స్టేట్మెంట్ను ఉపయోగించడం. అదృష్టవశాత్తూ, Oracle మాకు ALTER TRIGGER స్టేట్మెంట్ను అందిస్తుంది, దీని సింటాక్స్ క్రింది విధంగా అందించబడింది:
ALTER TRIGGER trigger_name DISABLE;ఉదాహరణకు, మేము ఇంతకు ముందు సృష్టించిన log_user ట్రిగ్గర్ను నిలిపివేయడానికి, మేము ఈ క్రింది వాటిని అమలు చేయవచ్చు:
ఆల్టర్ ట్రిగ్గర్ log_user డిసేబుల్;ఒకసారి అమలు చేసిన తర్వాత, ట్రిగ్గర్ పాత డేటా యొక్క కాపీని మరియు కింది వాటిలో చూపిన విధంగా తొలగింపును చేసిన వినియోగదారుని ఇకపై ఉంచదు:
id = 2 ఉన్న సాంపిల్_డేటా నుండి తొలగించండి;లాగ్లను తనిఖీ చేయండి:
నమూనా_డేటా_లాగ్ల నుండి * ఎంచుకోండి;అవుట్పుట్:
మనం చూడగలిగినట్లుగా, మనకు ఇప్పటికీ ఒకే ఒక రికార్డు ఉంది.
SQL డెవలపర్ని ఉపయోగించి ట్రిగ్గర్ను నిలిపివేయండి
గ్రాఫికల్ ఇంటర్ఫేస్లో ట్రిగ్గర్ను నిలిపివేయడానికి మేము SQL డెవలపర్ యుటిలిటీని ఉపయోగించవచ్చు. SQL డెవలపర్కు లాగిన్ చేయడం ద్వారా ప్రారంభించండి.
'ట్రిగ్గర్స్' విభాగానికి నావిగేట్ చేయండి:
ట్రిగ్గర్స్ డైరెక్టరీని విస్తరించండి మరియు మీరు డిసేబుల్ చేయాలనుకుంటున్న ట్రిగ్గర్ను గుర్తించండి. ట్రిగ్గర్ పేరుపై కుడి క్లిక్ చేసి, 'డిసేబుల్' ఎంచుకోండి.
'డిసేబుల్' ఆపరేషన్ను నిర్ధారించి, 'వర్తించు' క్లిక్ చేయండి.
నిలిపివేయబడిన తర్వాత, ఒరాకిల్ ట్రిగ్గర్ను గ్రేస్ చేస్తుంది, ఇది నిష్క్రియంగా ఉందని సూచిస్తుంది.
ముగింపు
PL/SQL స్టేట్మెంట్లు మరియు SQL డెవలపర్ యుటిలిటీని ఉపయోగించి ఒరాకిల్ ట్రిగ్గర్ను ఎలా డిసేబుల్ చేయాలో ఈ కథనం అన్వేషించింది.