మాడ్యూల్ పాఠాలు (4/4)
ప్రాక్టికల్ ట్రిగ్గర్స్ మరియు ఆడిట్
ఇప్పుడు మేము స్మార్ట్ బుల్లెట్లను (ట్రిగ్గర్ ఫంక్షన్లు) ఎలా ఫోర్జ్ చేయాలో నేర్చుకున్నాము, ఈవెంట్ కోసం వేచి ఉన్న నిజమైన ప్రైమ్డ్ వెపన్స్లో వాటిని మౌంట్ చేయాలి: ఇక్కడ నిజమైన ట్రిగ్గర్లు వచ్చాయి! ఒక ట్రిగ్గర్ మునుపు సృష్టించిన ఫంక్షన్ను అధికారికంగా జోడించి, ఇచ్చిన టేబుల్పై నిర్దిష్ట CRUD ఈవెంట్ను "ముందు" లేదా "తర్వాత" కాల్చమని నిర్దేశిస్తుంది.
అనేక ఎంపికలు ఉన్నాయి; ఉదాహరణకు FOR EACH ROW ప్రభావిత అడ్డు వరుసకు ఒకసారి దాన్ని కాల్చేస్తుంది, కాబట్టి బల్క్ క్వెరీ 5 మిలియన్ అడ్డు వరుసలకు పైగా గ్లోబల్ అప్డేట్ అయితే, అది 5 మిలియన్ మైక్రో-ఎగ్జిక్యూషన్లను అమలు చేస్తుంది - దానితో జాగ్రత్తగా ఉండండి!
CREATE TRIGGER sync_inventory_trigger
-- Event options
AFTER INSERT OR UPDATE ON order_items
-- Modus operandi (singular or global macro-block FOR EACH STATEMENT)
FOR EACH ROW
-- Run the forged action
EXECUTE FUNCTION update_stock();ట్రిగ్గర్ జావాస్క్రిప్ట్కు కనిపించదు మరియు ఇంజిన్కు సురక్షితంగా సమర్పించబడిన అప్డేట్ల ఆధారంగా స్టాక్ను స్వయంప్రతిపత్తితో సంపూర్ణంగా స్థిరంగా ఉంచుతుంది.
ఆటోమేట్ అవుతోంది_At
మా JS అప్డేట్ మోడల్లలో { updated_at: new Date() }ని పాస్ చేయడం మర్చిపోయే సతత హరిత వ్యాపార సమస్య ఉంది. set_updated_at ట్రిగ్గర్ ఫంక్షన్ BEFORE UPDATE ట్రిగ్గర్తో కలిపి ఈ ఇబ్బందిని తొలగిస్తుంది, ప్రతి రికార్డ్ మార్పును స్వయంచాలకంగా నవీకరిస్తుంది.
మీరే ప్రయత్నించండి
'trg_force_uppercase' పేరుతో ఒక ట్రిగ్గర్ను సృష్టించండి.\nదీన్ని 'కస్టమర్ల' పట్టికలో 'ఇన్సర్ట్ చేయడానికి ముందు' దశలో అటాచ్ చేయండి.\n'ప్రతి వరుస కోసం' వరుసల వారీ గణనను బలవంతం చేసి, 'force_uppercase_name'ని అమలు చేయడాన్ని ప్రారంభించండి: UDF కూడా re\nNote' కోడ్ ఎగువన 'force_uppercase_name' (పర్యావరణం వేరుచేయబడినందున), ఆపై ట్రిగ్గర్ డిక్లరేషన్ను జత చేయండి.
సూచనను చూపించు
టెక్స్ట్ సింటాక్స్: ముందుగా ఫంక్షన్ను సృష్టించండి, ఆపై ప్రతి వరుసలో కస్టమర్లను ఇన్సర్ట్ చేయడానికి ముందు TRIGGER trg_force_uppercaseని క్రియేట్ చేయి జోడించండి force_uppercase_name();
3 ప్రయత్నాల తర్వాత పరిష్కారం లభిస్తుంది
సెన్సార్ను చంపండి! కొన్నిసార్లు మేము ధ్వనించే ఆడిట్లను దాటవేయడం ద్వారా ముడి సీడ్ ఫైల్లు లేదా తాత్కాలిక స్థానిక మార్పులను పుష్ చేయాలనుకుంటున్నాము.\nట్రిగ్గర్ను వదలడం చాలా సూటిగా ఉంటుంది (మీరు ఆర్గానిక్ ఫంక్షన్ను తొలగించరు, మీరు సెన్సార్ బైండింగ్ను మాత్రమే తొలగిస్తారు).\nపేరు మరియు గ్లోబల్ అటాచ్మెంట్ను పేర్కొంటూ 'DROP TRIGGER' కీవర్డ్ని ఉపయోగించండి.
సూచనను చూపించు
ఎక్కడి నుండి అని పేర్కొనడం గుర్తుంచుకోండి. కస్టమర్లపై ట్రిగ్గర్ trg_force_uppercaseని వదలండి;
3 ప్రయత్నాల తర్వాత పరిష్కారం లభిస్తుంది