నిల్వ చేయబడిన విధానాలు డేటాబేస్ ఆప్టిమైజేషన్తో మరియు పునర్వినియోగాన్ని మెరుగుపరచడంలో సహాయపడతాయి. అదే ప్రశ్నను అమలు చేయడానికి బదులుగా, మీరు అవసరమైనప్పుడు కాల్ చేసే పనిని నిల్వ చేసిన విధానంగా సృష్టించవచ్చు. మీరు ఈ పోస్ట్ ముగిసే సమయానికి నిల్వ చేసిన విధానాల గురించి ప్రతిదీ నేర్చుకుంటారు.
PostgreSQLలో నిల్వ చేయబడిన విధానాలతో పని చేస్తోంది
PostgreSQL వినియోగదారుగా, PostgreSQL ఫంక్షన్లు లావాదేవీలను అమలు చేయవని మీరు గమనించి ఉండవచ్చు. లావాదేవీని సృష్టించడం సాధ్యమే అయినప్పటికీ, దానిని చేయడం లేదా మునుపటి స్థితికి మార్చడం సాధ్యం కాదు. అయినప్పటికీ, నిల్వ చేయబడిన విధానాలను ఉపయోగించి ఈ పరిమితులు దాటవేయబడతాయి.
PostgreSQLలో నిల్వ చేయబడిన విధానాన్ని రూపొందించడానికి ప్రాథమిక వాక్యనిర్మాణం ఇక్కడ ఉంది:
ప్రక్రియ_పేరుని సృష్టించండి లేదా భర్తీ చేయండి
పరామితి[లు] డేటా_రకం
)
LANGUAGE plpsql;
$$ వలె
ప్రకటించండి
వేరియబుల్స్_ఏదైనా డేటా_టైప్_అయితే
ప్రారంభం
తర్కం
ముగింపు;
$$
ఇవ్వబడిన సింటాక్స్ నుండి గమనించవలసిన ముఖ్య విషయాలు “procedure_name” అంటే మీరు నిల్వ చేసిన విధానం కోసం ఉపయోగించే పేరు, మీరు చేర్చాలనుకుంటున్న పారామితులు మరియు వాటి డేటా రకాలు మరియు లాజిక్ ప్రధానంగా SQL స్టేట్మెంట్లు.
PostgreSQLలో నిల్వ చేయబడిన విధానాలను ఎలా సృష్టించాలో అర్థం చేసుకోవడంలో మీకు సహాయపడటానికి మూడు ఉదాహరణలను ఇద్దాం.
ఉదాహరణ 1: ఒక సంఖ్య యొక్క చతురస్రాన్ని లెక్కించడానికి నిల్వ చేయబడిన విధానం
మా మొదటి ఉదాహరణ కోసం, మేము టెర్మినల్కు అవుట్పుట్ను ప్రింట్ చేసే మార్గంగా “RAISE NOTICE” స్టేట్మెంట్ని ఉపయోగించే స్టోర్డ్ విధానాన్ని సృష్టిస్తాము. నిల్వ చేయబడిన విధానం కాల్ చేస్తున్నప్పుడు మీరు ఇచ్చే పూర్ణాంక విలువను తీసుకుంటుంది మరియు దాని వర్గాన్ని లెక్కించండి.
మేము నిల్వ చేసిన విధానాన్ని ఎలా సృష్టించాలో ఇక్కడ ఉంది:
మేము మా పరామితిని 'num1' అని పేరు పెట్టాము మరియు అది పూర్ణాంకం. లాజిక్ భాగం కోసం, అది “num1” యొక్క వర్గాన్ని ఎలా పొందుతుందో మరియు దానిని స్క్వేర్ వేరియబుల్గా ఎలా నిల్వ చేస్తుందో మేము నిర్వచించాము. మేము ఆదేశాన్ని అమలు చేసినప్పుడు, మేము నిల్వ చేసిన విధానాన్ని విజయవంతంగా సృష్టించగలమని నిర్ధారిస్తూ 'క్రియేట్ ప్రొసీజర్' అవుట్పుట్ను పొందుతాము.
తదుపరి పని విధానం కాల్ మరియు అది ఊహించిన వాదన ఇవ్వాలని ఉంది.
కాల్ విధానం_పేరు(వాదనలు);మీరు నిల్వ చేసిన విధానం అమలు చేయబడిందని చూపే కాల్ అవుట్పుట్ను పొందుతారు మరియు మేము ఆశించిన అవుట్పుట్ను పొందుతున్నాము, ఈ సందర్భంలో, మేము జోడించిన వాదన యొక్క వర్గాన్ని ఇది పొందుతుంది.
ఉదాహరణ 2: టేబుల్ ఎంట్రీలో విలువలను చొప్పించడానికి నిల్వ చేయబడిన విధానం
కింది రెండు ఉదాహరణలు డేటాబేస్ టేబుల్తో పనిచేసే నిల్వ చేయబడిన విధానాన్ని ఎలా సృష్టించాలో చూపుతాయి. మేము పని చేసే 'విద్యార్థులు' పట్టికను త్వరగా సృష్టిద్దాం.
ఈ ఉదాహరణ కోసం, మేము కొత్తగా సృష్టించిన పట్టికలో విలువలను చొప్పించడానికి వినియోగదారుని అనుమతించే నిల్వ చేసిన విధానాన్ని సృష్టిస్తాము. మేము నిల్వ చేసిన విధానాన్ని కాల్ చేసినప్పుడు మేము ఆర్గ్యుమెంట్లుగా జోడించబడాలని ఆశించే పారామితులను ఎలా పేర్కొనాలో గమనించండి. అంతేకాకుండా, మేము జోడించిన ఆర్గ్యుమెంట్లను తీసుకొని “స్టూడెంట్స్” టేబుల్కి ఇన్సర్ట్ SQL స్టేట్మెంట్ను అమలు చేసే లాజిక్ను నిర్వచించాము.
కింది ఆదేశాన్ని అమలు చేయడం ద్వారా అందుబాటులో ఉన్న నిల్వ విధానాలను మనం తనిఖీ చేయవచ్చు:
\dfకింది అవుట్పుట్ నుండి మనం చూడగలిగే మొదటి నిల్వ చేయబడిన విధానం మనం మునుపు సృష్టించిన “add_student”.
ఇప్పుడు, దానిని అమలు చేయడానికి నిల్వ చేసిన విధానాన్ని పిలుద్దాం. కింది చిత్రం మన వద్ద ఖాళీ పట్టిక ఎలా ఉందో చూపిస్తుంది, కానీ మేము మొదటి విద్యార్థిని జోడించడానికి నిల్వ చేసిన విధానాన్ని పిలిచాము:
మేము మా టేబుల్లోని విలువలను జాబితా చేస్తే, కాల్ ప్రొసీజర్ కమాండ్తో మేము జోడించిన ఆర్గ్యుమెంట్లు మా టేబుల్లోని మా మొదటి విద్యార్థికి ఎలా విలువలు అవుతాయో గమనించండి. పట్టికలో విలువలను చొప్పించడానికి మీరు నిల్వ చేసిన విధానాన్ని ఎలా సృష్టిస్తారు.
నిల్వ చేయబడిన విధానాన్ని సృష్టించేటప్పుడు, లోపాలను నివారించడానికి మీరు పేర్కొన్న పారామితులు మీ పట్టికలో ఆశించిన దానితో సరిపోలాలని గుర్తుంచుకోండి. అంతేకాకుండా, డేటా రకం తప్పనిసరిగా సరిపోలాలి.
ఉదాహరణ 3: టేబుల్ ఎంట్రీని అప్డేట్ చేయడానికి నిల్వ చేయబడిన విధానం
కొనసాగుతూనే, టేబుల్ ఎంట్రీని అప్డేట్ చేసే మరొక స్టోర్డ్ ప్రొసీజర్ని క్రియేట్ చేద్దాం. మీరు మా టేబుల్లోని విలువలను త్వరగా అప్డేట్ చేయాలనుకుంటే, మీరు ఈ క్రింది విధంగా అప్డేట్ స్టోర్ చేయబడిన విధానాన్ని సృష్టించవచ్చు:
మీరు WHERE కీవర్డ్ని మరియు SET కీవర్డ్ని ఉపయోగించి కొత్త విలువను ఉపయోగించి ఏ నిలువు వరుసను అప్డేట్ చేయాలనుకుంటున్నారో పేర్కొనండి. మార్పులను కొనసాగించడానికి మీరు తప్పనిసరిగా COMMIT కీవర్డ్ని జోడించాలి.
అప్డేట్ స్టోర్ చేయబడిన విధానాన్ని కాల్ చేసి, ఊహించిన ఆర్గ్యుమెంట్లను జోడిద్దాం: “student_id” మరియు కొత్త కోర్సు.
మేము మా పట్టికలో నమోదులను జాబితా చేస్తే, మేము లక్ష్యంగా చేసుకున్న నిర్దిష్ట విద్యార్థి కోసం నవీకరించబడిన కోర్సును కలిగి ఉన్నామని ధృవీకరించవచ్చు. నవీకరణ నిల్వ చేయబడిన విధానం ఎలా పని చేస్తుంది.
ముగింపు
మీరు PostgreSQLలో ఏదైనా నిల్వ చేసిన విధానాన్ని సృష్టించవచ్చు. మీరు అనుసరించడానికి వాక్యనిర్మాణాన్ని మాత్రమే అర్థం చేసుకోవాలి మరియు నిల్వ చేసిన విధానం కోసం మీ లాజిక్ను నిర్వచించాలి. అక్కడ నుండి, నిల్వ చేసిన విధానాన్ని కాల్ చేయండి మరియు అది ఊహించిన విధంగా అమలు చేయబడిందని ధృవీకరించండి. ఈ పోస్ట్ PostgreSQLలో నిల్వ చేయబడిన విధానాల గురించి వివరించింది మరియు వాటిని ఎలా సృష్టించాలో ఉదాహరణలను అందించింది.