Postgresl இல் மதிப்புகள் ஏற்கனவே இல்லை என்றால் வரிசையைச் செருகவும்

Insert Row If Values Don T Already Exist Postgresl



தரவுத்தள மேலாண்மை அமைப்புகளை அறிவதும் கையாளுவதும் தரவுத்தளங்களைப் பற்றிய மாற்றங்களை நமக்கு நன்கு தெரிந்திருக்கிறது. குறிப்பிட்ட அட்டவணையில் பயன்படுத்தப்படும் செயல்பாடுகளை உருவாக்குதல், செருகுவது, புதுப்பித்தல் மற்றும் நீக்குதல் ஆகியவை இதில் அடங்கும். தற்போதைய கட்டுரையில், செருகும் முறையால் தரவு எவ்வாறு நிர்வகிக்கப்படுகிறது என்பதைப் பார்ப்போம். நாம் செருக விரும்பும் அட்டவணையை உருவாக்க வேண்டும். அட்டவணைகளின் வரிசைகளில் புதிய தரவைச் சேர்க்க செருகல் அறிக்கை பயன்படுத்தப்படுகிறது. PostgreSQL செருகல் அறிக்கை வினவலை வெற்றிகரமாக நிறைவேற்றுவதற்கான சில விதிகளை உள்ளடக்கியது. முதலில் நாம் வரிசைகளைச் செருக விரும்பும் அட்டவணை பெயரைத் தொடர்ந்து நெடுவரிசைப் பெயர்கள் (பண்புக்கூறுகள்) குறிப்பிட வேண்டும். இரண்டாவதாக, VALUE பிரிவுக்குப் பிறகு கமாவால் பிரிக்கப்பட்ட மதிப்புகளை நாம் உள்ளிட வேண்டும். இறுதியாக, ஒவ்வொரு அட்டவணையும் ஒரு குறிப்பிட்ட அட்டவணையை உருவாக்கும் போது பண்புக்கூறு பட்டியல்களின் வரிசை வழங்கப்பட்ட அதே வரிசையில் இருக்க வேண்டும்.

தொடரியல்

>> செருகவும் INTOஅட்டவணை(நெடுவரிசை 1,நெடுவரிசை) மதிப்புகள் ('மதிப்பு 1', 'மதிப்பு 2');

இங்கே, ஒரு நெடுவரிசை அட்டவணையின் பண்புகளாகும். மதிப்புகளை உள்ளிட முக்கிய மதிப்பு VALUE பயன்படுத்தப்படுகிறது. 'மதிப்பு' என்பது உள்ளிடப்பட வேண்டிய அட்டவணைகளின் தரவு.







PostgreSQL ஷெல் (psql) இல் வரிசை செயல்பாடுகளைச் செருகுவது

Postgresql வெற்றிகரமாக நிறுவப்பட்ட பிறகு, தரவுத்தள பெயர், போர்ட் எண் மற்றும் கடவுச்சொல்லை உள்ளிடுவோம். Psql தொடங்கப்படும். நாங்கள் முறையே வினவல்களைச் செய்வோம்.





எடுத்துக்காட்டு 1: அட்டவணையில் புதிய பதிவுகளைச் சேர்க்க INSERT ஐப் பயன்படுத்துதல்
தொடரியலைப் பின்பற்றி, பின்வரும் வினவலை உருவாக்குவோம். அட்டவணையில் ஒரு வரிசையைச் செருக, நாங்கள் வாடிக்கையாளர் என்ற அட்டவணையை உருவாக்குவோம். தொடர்புடைய அட்டவணையில் 3 நெடுவரிசைகள் உள்ளன. குறிப்பிட்ட நெடுவரிசைகளின் தரவு வகை அந்த நெடுவரிசையில் தரவை உள்ளிடவும் மற்றும் பணிநீக்கத்தை தவிர்க்கவும் குறிப்பிடப்பட வேண்டும். அட்டவணையை உருவாக்குவதற்கான வினவல்:





>> உருவாக்க மேசைவாடிக்கையாளர்(ஐடிint,பெயர் varchar (40), நாடுvarchar (40));

அட்டவணையை உருவாக்கிய பிறகு, தனித்தனி வினவல்களில் வரிசைகளை கைமுறையாக செருகுவதன் மூலம் தரவை உள்ளிடுவோம். முதலில், பண்புகளைப் பற்றிய குறிப்பிட்ட நெடுவரிசைகளில் தரவின் துல்லியத்தை பராமரிக்க நெடுவரிசை பெயரை குறிப்பிடுகிறோம். பின்னர், மதிப்புகள் உள்ளிடப்படும். மதிப்புகள் ஒற்றை கோமாக்களால் குறியிடப்படுகின்றன, ஏனெனில் அவை எந்த மாற்றமும் இல்லாமல் செருகப்பட வேண்டும்.



>> செருக உள்ளேவாடிக்கையாளர்(ஐடி,பெயர், நாடு) மதிப்புகள் ('1',‘ஆலியா’, ‘பாகிஸ்தான்’);

ஒவ்வொரு வெற்றிகரமான செருகலுக்கும் பிறகு, வெளியீடு 0 1 ஆக இருக்கும், அதாவது ஒரு நேரத்தில் 1 வரிசை செருகப்படும். முன்பு குறிப்பிட்ட வினவலில், நாங்கள் 4 முறை தரவைச் செருகியுள்ளோம். முடிவுகளைப் பார்க்க, நாங்கள் பின்வரும் வினவலைப் பயன்படுத்துவோம்:

>> தேர்ந்தெடுக்கவும்*இருந்துவாடிக்கையாளர்;

எடுத்துக்காட்டு 2: ஒரு வினவலில் பல வரிசைகளைச் சேர்ப்பதில் INSERT அறிக்கையைப் பயன்படுத்துதல்
தரவைச் செருகுவதிலும் அதே அணுகுமுறை பயன்படுத்தப்படுகிறது ஆனால் பல முறை நுழைவு அறிக்கைகளை அறிமுகப்படுத்தவில்லை. ஒரு குறிப்பிட்ட வினவலைப் பயன்படுத்தி ஒரே நேரத்தில் தரவை உள்ளிடுவோம்; ஒரு வரிசையின் அனைத்து மதிப்புகளும் பின்வரும் வினவலைப் பயன்படுத்தி பிரிக்கப்படுகின்றன, தேவையான வெளியீட்டை நாங்கள் அடைவோம்

எடுத்துக்காட்டு 3: மற்றொரு அட்டவணையில் உள்ள எண்களின் அடிப்படையில் ஒரு அட்டவணையில் பல வரிசைகளைச் செருகவும்
இந்த உதாரணம் ஒரு டேபிளில் இருந்து இன்னொரு டேபிளுக்கு டேட்டா செருகுவது தொடர்பானது. இரண்டு அட்டவணைகளைக் கருதுங்கள், a மற்றும் b. அட்டவணை a 2 பண்புகளைக் கொண்டுள்ளது, அதாவது பெயர் மற்றும் வர்க்கம். CREATE வினவலைப் பயன்படுத்துவதன் மூலம், நாங்கள் ஒரு அட்டவணையை அறிமுகப்படுத்துவோம். அட்டவணையை உருவாக்கிய பிறகு, செருகும் வினவலைப் பயன்படுத்தி தரவு உள்ளிடப்படும்.

>> உருவாக்க மேசைக்கு(பெயர் varchar (30),வர்க்கம் varchar (40));
>> செருக உள்ளேக்குமதிப்புகள் ('ஆம்னா',1),('பீஷ்மர்', '2'),('ஜாவேட்', '3'),('கீழ்',4');

நான்கு மதிப்புகள் அட்டவணையில் மிகைப்படுத்தப்பட்ட கோட்பாட்டைப் பயன்படுத்தி செருகப்படுகின்றன. தேர்ந்தெடுக்கப்பட்ட அறிக்கைகளைப் பயன்படுத்தி நாம் சரிபார்க்கலாம்.

இதேபோல், அனைத்து பெயர்கள் மற்றும் பாடங்களின் பண்புகளைக் கொண்ட அட்டவணை b ஐ உருவாக்குவோம். அதே 2 வினவல்கள் செருகுவதற்கும் தொடர்புடைய அட்டவணையில் இருந்து பதிவைப் பெறுவதற்கும் பயன்படுத்தப்படும்.

>> உருவாக்க மேசைb(அனைத்து பெயர்கள் varchar(30), பொருள் varchar(70));

தேர்ந்தெடுக்கப்பட்ட கோட்பாட்டின் மூலம் பதிவைப் பெறுங்கள்.

>> தேர்ந்தெடுக்கவும்*இருந்துb;

அட்டவணையின் மதிப்புகளைச் செருக b அட்டவணையில், பின்வரும் வினவலைப் பயன்படுத்துவோம். இந்த வினவல் அட்டவணையில் உள்ள அனைத்து பெயர்களும் வேலை செய்யும் b அட்டவணையில் செருகப்படும் க்கு அட்டவணையின் அந்தந்த நெடுவரிசையில் ஒரு குறிப்பிட்ட எண்ணின் நிகழ்வுகளின் எண்ணிக்கையைக் காட்டும் எண்களின் எண்ணிக்கையுடன் b . b.allnames அட்டவணையை குறிப்பிட பொருள் செயல்பாட்டைக் குறிக்கிறது. எண்ணிக்கை (b.allnames) செயல்பாடு மொத்த நிகழ்வை எண்ணுவதற்கு வேலை செய்கிறது. ஒவ்வொரு பெயரும் ஒரே நேரத்தில் ஏற்பட்டதால், இதன் விளைவாக வரும் நெடுவரிசையில் 1 எண் இருக்கும்.

>> செருக உள்ளேக்கு(பெயர்,வர்க்கம்) தேர்ந்தெடுக்கவும்b. அனைத்து பெயர்கள், எண்ணிக்கை(b. அனைத்து பெயர்கள்) இருந்துbகுழு மூலம்b. அனைத்து பெயர்கள்;

எடுத்துக்காட்டு 4: வரிசையில் உள்ள தரவு இல்லாவிட்டால்
இந்த வினவல் இல்லையென்றால் வரிசைகளை உள்ளிட பயன்படுகிறது. முதலில் வழங்கப்பட்ட வினவல் வரிசை ஏற்கனவே உள்ளதா இல்லையா என்பதைச் சரிபார்க்கிறது. இது ஏற்கனவே இருந்தால், தரவு சேர்க்கப்படாது. தரவு ஒரு வரிசையில் இல்லை என்றால், புதிய செருகல் நடைபெறும். இங்கே tmp என்பது தற்காலிக மாறி, சில நேரம் தரவை சேமிக்க பயன்படுகிறது.

>> செருக உள்ளேb(அனைத்து பெயர்கள், பொருள்) தேர்ந்தெடுக்கவும்*இருந்து (தேர்ந்தெடுக்கவும்'கின்சா'எனஅனைத்து பெயர்கள், 'இஸ்லாமியத்'எனபொருள்) எனtmpஎங்கே இல்லை உள்ளது ( தேர்ந்தெடுக்கவும்அனைத்து பெயர்கள்இருந்துbஎங்கேஅனைத்து பெயர்கள்='சண்டுகள்'அளவு 1);

எடுத்துக்காட்டு 5: INSERT அறிக்கையைப் பயன்படுத்தி PostgreSQL Upsert
இந்த செயல்பாட்டில் இரண்டு வகைகள் உள்ளன:

  • புதுப்பிப்பு: மோதல் ஏற்பட்டால், அட்டவணையில் இருக்கும் தரவுகளுடன் பதிவு பொருந்தினால், அது புதிய தரவுகளுடன் புதுப்பிக்கப்படும்.
  • மோதல் ஏற்பட்டால், எதுவும் செய்யாதீர்கள் : அட்டவணையில் இருக்கும் தரவுகளுடன் ஒரு பதிவு பொருந்தினால், அது பதிவைத் தவிர்க்கிறது, அல்லது ஒரு பிழை கண்டறியப்பட்டால், அது புறக்கணிக்கப்படும்.

ஆரம்பத்தில், சில மாதிரி தரவுகளுடன் ஒரு அட்டவணையை உருவாக்குவோம்.

>> உருவாக்கு மேசைtbl2(ஐடிINT முதன்மை கீ,பெயர் பண்பு மாறுபாடு);

அட்டவணையை உருவாக்கிய பிறகு, வினவலைப் பயன்படுத்தி tbl2 இல் தரவைச் செருகுவோம்:

>> செருகவும் INTOtbl2மதிப்புகள் (1,'உஸ்மா'),(2,'அப்துல்'),(3,'ஹம்னா'),(4,'பாத்திமா'),(5,'ஷிஜா'),(6,'ஜாவேரியா');

மோதல் ஏற்பட்டால், புதுப்பிக்கவும்:

>>செருகவும் INTOtbl2மதிப்புகள் (8,'சவாரி') ஆன்தொடர்பு(ஐடி) செய் புதுப்பிக்கவும் அமை பெயர்=விலக்கப்பட்டது.பெயர்;

முதலில், ஐடி 8 மற்றும் ரிடா என்ற பெயரின் மோதல் வினவலைப் பயன்படுத்தி தரவை உள்ளிடுவோம். அதே ஐடியைத் தொடர்ந்து அதே வினவல் பயன்படுத்தப்படும்; பெயர் மாற்றப்படும். அட்டவணையில் உள்ள அதே ஐடியில் பெயர்கள் எவ்வாறு மாற்றப்படும் என்பதை இப்போது நீங்கள் கவனிப்பீர்கள்.

>> செருகவும் INTOtbl2மதிப்புகள் (8,'வேலை') ஆன்தொடர்பு(ஐடி) செய் புதுப்பிக்கவும் அமை பெயர் =விலக்கப்பட்டது.பெயர்;

ஐடி 8 இல் மோதல் இருப்பதை நாங்கள் கண்டறிந்துள்ளோம், எனவே குறிப்பிட்ட வரிசை புதுப்பிக்கப்பட்டது.

மோதல் ஏற்பட்டால், எதுவும் செய்யாதீர்கள்

>> செருகவும் INTOtbl2மதிப்புகள் (9,'ஹிரா') ஆன்தொடர்பு(ஐடி) செய் எதுவுமில்லை;

இந்த வினவலைப் பயன்படுத்தி, ஒரு புதிய வரிசை செருகப்பட்டது. அதன் பிறகு, ஏற்பட்ட மோதலைக் காண அதே வினவலைப் பயன்படுத்தினால் நாங்கள் பயன்படுத்துவோம்.

>>செருகவும் INTOtbl2மதிப்புகள் (9,'ஹிரா') ஆன்தொடர்பு(ஐடி) செய் எதுவுமில்லை;

மேலே உள்ள படத்தின்படி, INSERT 0 0 வினவலை முடித்த பிறகு தரவு எதுவும் உள்ளிடப்படவில்லை என்பதைக் காட்டுகிறது.

முடிவுரை

தரவுத்தள உறவுகளில் பணிநீக்கத்தை குறைப்பதற்காக, தரவு இல்லாத அல்லது செருகல் நிறைவடையாத அட்டவணையில் வரிசைகளை செருகுவதற்கான புரிதல் கருத்தை நாங்கள் ஒரு பார்வை எடுத்துள்ளோம்.