MySQL செருகு புறக்கணிப்பு நகல் விசை

Mysql Insert Ignore Duplicate Key



அட்டவணைகள் அல்லது முடிவு தொகுப்புகளில் அடிக்கடி முரண்பட்ட தரவு உள்ளது. இது திருத்த நேரம் எடுக்கும், மற்றும் அடிக்கடி மீண்டும் மீண்டும் பதிவுகள் தவிர்க்கப்பட வேண்டும். நகல் பதிவுகளை அடையாளம் கண்டு அவற்றை எந்த அட்டவணையில் இருந்தும் நீக்குவது அவசியம். அட்டவணையின் உள்ளே நகல் தரவு தோன்றுவதைத் தவிர்ப்பது மற்றும் தற்போதைய நகல் பதிவுகளை எவ்வாறு அகற்றுவது என்பதை இந்த பிரிவு விரிவாகக் கூறுகிறது. இந்த வழிகாட்டியில், பிழையைத் தவிர்க்க INSERT IGNORE உட்பிரிவை எவ்வாறு பயன்படுத்துவது என்பதை நீங்கள் கற்றுக் கொள்வீர்கள்.

தொடரியல்:

INSERT IGNORE வினவலுக்கான தொடரியல் இங்கே.







>>அட்டவணை_பெயருக்குள் இண்டர்நெட் இக்னோர்(col1, col2, col3)மதிப்புகள்(மதிப்பு_ப்பட்டியல்),(மதிப்பு_ப்பட்டியல்),(மதிப்பு_ப்பட்டியல்);

பணி பெஞ்ச் வழியாக இன்ஜெர்ட் இக்னோர்:

உங்கள் கணினியிலிருந்து MySQL Workbench 8.0 ஐத் திறந்து அதை தரவுத்தள நிகழ்வோடு இணைக்கவும்.





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





>>அட்டவணை ஊழியரை உருவாக்குங்கள்(ஐடி இண்ட் முதன்மை விசை முற்றிலும் இல்லை, பெயர் வார்ச்சர்(ஐம்பது)பூஜ்யம் இல்லை, வயது வர்சார்(ஐம்பது), சம்பளம் varchar(ஐம்பது), தனித்துவமான(ஐடி));

உருவாக்கியதும், டேட்டாபேஸ் தரவின் கீழ் உள்ள அட்டவணைகள் என்ற விருப்பத்தின் கீழ் அட்டவணை ஊழியரை பட்டியலில் காணலாம்.



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

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

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

இது கட்டம் பார்வை பற்றியது. இப்போது, ​​வினவல் பகுதி வழியாக பதிவுகளைச் செருகுவோம். இதற்கிடையில், வெளியீட்டைச் சரிபார்க்க இந்த முறை நகல் பதிவுகளைச் செருகி வருகிறோம். எனவே, கீழேயுள்ள INSERT வினவலை நாங்கள் முயற்சித்தோம், எங்களிடம் இரண்டு மதிப்புகள் உள்ளன. மதிப்புகளின் இரண்டு பட்டியல்களும் 'ஐடி' நெடுவரிசையில் ஒரே மதிப்பைக் கொண்டுள்ளன. வினவலைத் தேர்ந்தெடுக்க வினவலைத் தேர்ந்தெடுத்து ஃப்ளாஷ் அடையாளத்தை அழுத்தவும்.

வினவல் சரியாக வேலை செய்யாது, மேலும் படத்தில் காட்டப்பட்டுள்ளபடி INSERT கட்டளையில் உள்ள நகல் மதிப்புகள் காரணமாக இது ஒரு பிழையை உருவாக்கும்.

இப்போது மேலே உள்ள அதே வினவலை INSERT IGNORE உட்பிரிவுடன் முயற்சி செய்து வழங்கியபடி செயல்படுத்தவும்.

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

அட்டவணை ஊழியரின் கட்டக் காட்சியைப் புதுப்பிக்கவும். INSERT IGNORE வினவல் பாதி வேலை செய்துள்ளது. இது மதிப்புகளின் முதல் பட்டியலை அட்டவணையில் செருகியது, ஆனால் மீண்டும் மீண்டும் மதிப்பு 13 காரணமாக மதிப்புகளின் இரண்டாவது பட்டியல் புறக்கணிக்கப்பட்டது.

கமாண்ட்-லைன் ஷெல் வழியாக இன்டர்ட் இக்னோர்:

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

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

>>அட்டவணை தரவை உருவாக்கவும்(மிட் இன்ட் பிரைமரி கீ தனித்துவமானது இல்லை, பெயர் வார்சார்(நான்கு. ஐந்து), நகர VARCHAR(நான்கு. ஐந்து));

கேள்வி சரியாக வேலை செய்கிறது, மற்றும் அட்டவணை உருவாக்கப்பட்டது. INSERT IGNORE உட்பிரிவைப் புரிந்து கொள்ள, முதலில் நீங்கள் எளிய INSERT கட்டளையின் செயல்பாட்டைப் பார்க்க வேண்டும். பல தகவல் தரவை அட்டவணையில் செருக நீங்கள் INSERT கட்டளையைப் பயன்படுத்துகிறீர்கள் என்றால், MySQL பரிவர்த்தனையை இடைநிறுத்துகிறது மற்றும் செயலாக்கம் முழுவதும் பிழை ஏற்பட்டால் விதிவிலக்கை உருவாக்குகிறது. இதன் விளைவாக, அட்டவணையில் எந்த வரிசைகளும் சேர்க்கப்படவில்லை. கீழே காட்டப்பட்டுள்ள வினவலைப் பயன்படுத்தி முதல் பதிவை அட்டவணை அமைச்சரில் செருகுவோம். வினவல் வெற்றிகரமாக வேலை செய்யும், ஏனெனில் அட்டவணை தற்போது காலியாக உள்ளது, மேலும் அதற்கு ஈடுசெய்ய எந்த பதிவும் இல்லை.

நெடுவரிசை ஐடி தனித்துவமானது, கட்டளை வரி ஷெல்லில் கீழே உள்ள அறிவுறுத்தலை முயற்சிக்கும்போது, ​​அது பிழையை உருவாக்கும். இதற்கு காரணம், முந்தைய வினவலில் நாம் 11 மதிப்பைச் சேர்த்துள்ளோம், மேலும் UNIQUE விசையின் காரணமாக மீண்டும் மீண்டும் மதிப்பைச் சேர்க்க அது அனுமதிக்காது.

எனவே, அட்டவணையைச் சரிபார்த்தபோது, ​​அட்டவணையில் முதல் பதிவில் 1 பதிவு மட்டுமே சேர்க்கப்பட்டிருப்பதைக் காணலாம்.

>>தேர்ந்தெடுக்கவும்*தரவு அமைச்சரிடமிருந்து;

மாறாக, நீங்கள் INSERT IGNORE உட்பிரிவைப் பயன்படுத்துகிறீர்கள் என்றால், பிழையைத் தூண்டும் தவறான தரவு வரிசைகள் கவனிக்கப்படாது மற்றும் துல்லியமானவற்றை மட்டுமே உள்ளிடும். கீழேயுள்ள கட்டளையில், அட்டவணையில் மீண்டும் மீண்டும் மதிப்புகளைச் சேர்ப்பதைத் தவிர்த்து, பிழையைக் கவனிக்காமல் இருக்க, இன்சர்ட் இக்னோர் கட்டளையைப் பயன்படுத்துகிறோம். நீங்கள் பார்க்கிறபடி, மதிப்புகளின் முதல் பட்டியல் முந்தைய வினவலைப் போலவே 11 இன் நகல் மதிப்பைக் கொண்டுள்ளது. மதிப்புகளின் இரண்டாவது பட்டியல் தனித்துவமானது என்றாலும், அது அட்டவணையில் செருகப்பட்ட 1 பதிவைக் காண்பிக்கும், இது மதிப்புகளின் இரண்டாவது பட்டியல். MySQL மேலும் 1 பதிவு மட்டுமே செருகப்பட்டிருப்பதையும், செய்தியில் 1 எச்சரிக்கை உருவாக்கப்படுவதையும் குறிக்கிறது. நாங்கள் INSERT IGNORE உட்பிரிவைப் பயன்படுத்துகிறோம் என்றால், MySQL ஒரு எச்சரிக்கையை வழங்குகிறது என்று நீங்கள் கருதலாம்.

கீழேயுள்ள வெளியீட்டில் இருந்து நீங்கள் பார்க்க முடிந்தபடி, இந்த அட்டவணையில் இரண்டு பதிவுகள் மட்டுமே உள்ளன - மேலே உள்ள வினவலில் வழங்கப்பட்ட மதிப்புகளின் முதல் பட்டியல் கவனிக்கப்படாமல் உள்ளது.

>>தேர்ந்தெடுக்கவும்*தரவு அமைச்சரிடமிருந்து;

முடிவுரை:

MySQL Workbench மற்றும் MySQL கட்டளை-வரி கிளையன்ட் ஷெல் வழியாக நகல் மதிப்புகள் குறித்து INSERT IGNORE இன் தேவையான அனைத்து எடுத்துக்காட்டுகளையும் செய்துள்ளோம்.