1. AUTO_INCREMENT හි මූලික සමාලෝචනය
AUTO_INCREMENT යනු MySQL හි ගුණාංගයක් වන අතර, දත්ත සමුදා වගුවක පේළි සඳහා ස්වයංක්රීයව අද්විතීය හැඳුනුම් (ID) එකක් නියම කරයි. මෙය ප්රධාන යතුරු (primary keys) සමඟ ප්රධාන වශයෙන් භාවිතා කරයි, නව දත්ත ඇතුළත් කරන විට අගය ස්වයංක්රීයව වැඩිවේ. මෙයින් පරිශීලකයන්ට ID ගොඩනැගීමට අතින් සඳහන් කිරීමේ අවශ්යතාවය ඉවත් කරමින්, දත්ත කළමනාකරණය වැඩි දියුණු කරයි.
මෙම විශේෂාංගය ඔබට ලේසිව රෙකෝඩ් එකතු කිරීමට, දත්ත අඛණ්ඩතාව රැක ගැනීමට ඉඩ සලසන බැවින්, පරිශීලක ලියාපදිංචි පද්ධති, නිෂ්පාදන කාටලෝ වැනි බොහෝ දත්ත සමුදා යෙදුම් වල පුළුල් ලෙස භාවිතා වේ. AUTO_INCREMENT භාවිතා කරන විට, තීරුවේ දත්ත වර්ගය පිළිබඳ අවධානයෙන් සිටිය යුතුය. උදාහරණයක් ලෙස, INT වර්ගයේ උපරිම අගය 2,147,483,647 වන අතර, මෙම සීමාව ඉක්මවා ගියහොත් දෝෂයක් සිදුවේ.
2. AUTO_INCREMENT අගය පරීක්ෂා කිරීම
ඊළඟ AUTO_INCREMENT අගය වගුවකට නියම කරනු ලබන්නේ කුමක්දැයි පරීක්ෂා කිරීමට, SHOW TABLE STATUS විධානය භාවිතා කරන්න. උදාහරණයක් මෙසේය:
SHOW TABLE STATUS LIKE 'table_name';
මෙම විමසුම ක්රියාත්මක කරන විට, MySQL වගුව පිළිබඳ විවිධ තත්ත්ව තොරතුරු පෙන්වයි. Auto_increment තීරුවේ පෙන්වන අංකය එම වගුවේ ඊළඟ ඇතුළත් කරන පේළිය සඳහා භාවිතා වන ID එකයි. උදාහරණයක් ලෙස, වගුවේ නාමය users නම්:
SHOW TABLE STATUS LIKE 'users';
Auto_increment හි අගය ඊළඟ භාවිතා වන ID එක වේ. මෙම ක්රමය දත්ත සමුදා පරිපාලකයන්ට වත්මන් AUTO_INCREMENT තත්ත්වය තේරුම් ගැනීමට සහ අවශ්ය විට එය සකස් කිරීමට උපකාරී වේ.
3. AUTO_INCREMENT අගය වෙනස් කිරීම
AUTO_INCREMENT අගය වෙනස් කිරීමට, ALTER TABLE ප්රකාශය භාවිතා කරන්න. මෙම විධානය මඟින් ඊළඟ ඇතුළත් කරන පේළිය සඳහා AUTO_INCREMENT අගය සකස් කළ හැක. උදාහරණයක්:
ALTER TABLE table_name AUTO_INCREMENT = new_value;
උදාහරණයක් ලෙස, my_table වගුවේ ඊළඟ AUTO_INCREMENT අගය 50 ලෙස සකස් කිරීමට:
ALTER TABLE my_table AUTO_INCREMENT = 50;
මෙම විධානය ක්රියාත්මක කිරීමෙන් පසු, නව ඇතුළත් කරන පේළි ID 50 සිට ආරම්භ වේ. නව දත්තයක් නියමිත ID පරාසයකින් ආරම්භ කිරීමට හෝ පවතින දත්ත සමඟ අනුකූලතාව රැක ගැනීමට මෙය ප්රයෝජනවත් වේ.
4. AUTO_INCREMENT තීරුව වෙනස් කිරීම
AUTO_INCREMENT වෙනත් තීරුවකට නැවත නියම කිරීමට, පළමුව වත්මන් AUTO_INCREMENT සැකසුම ඉවත් කර, පසුදා නව තීරුවට යෙදිය යුතුය. මෙහි පියවර කිහිපයක් ඇත. පළමුව, වත්මන් AUTO_INCREMENT සැකසුම ඉවත් කර, පසුදා නව තීරුවට යෙදිය යුතුය. පියවර පහත පරිදි වේ:
- වත්මන්
AUTO_INCREMENTඉවත් කිරීම - නව තීරුවේ
AUTO_INCREMENTසකස් කිරීම
විශේෂ SQL විධාන පහත පරිදි වේ.
පළමුව, වත්මන් AUTO_INCREMENT සැකසුම ඉවත් කරන්න.
ALTER TABLE table_name CHANGE column_name column_name data_type NOT NULL;
ALTER TABLE table_name DROP PRIMARY KEY;
ඊළඟට, නව තීරුවේ AUTO_INCREMENT සකස් කරන්න.
ALTER TABLE table_name ADD PRIMARY KEY (new_column_name);
ALTER TABLE table_name CHANGE new_column_name new_column_name data_type AUTO_INCREMENT;
ඉහත පෙන්වා ඇති පරිදි, AUTO_INCREMENT තීරුව වෙනස් කිරීම සඳහා තීරුව සංශෝධනය කිරීම, ප්රාථමික යතුර (primary key) යාවත්කාලීන කිරීම, සහ AUTO_INCREMENT නැවත යෙදීම යන තිදෙනා පියවර අවශ්ය වේ.

5. AUTO_INCREMENT ඉවත් කිරීම
AUTO_INCREMENT සැකසුම ඉවත් කිරීමට, පළමුව වත්මන් AUTO_INCREMENT ගුණාංගය සහ ප්රාථමික යතුරු සැකසුම ඉවත් කළ යුතුය. පියවර පහත පරිදි වේ:
AUTO_INCREMENTඉවත් කිරීම- ප්රාථමික යතුර ඉවත් කිරීම
විශේෂ SQL විධානය මෙසේය:
ALTER TABLE table_name CHANGE column_name column_name data_type NOT NULL;
ALTER TABLE table_name DROP PRIMARY KEY;
මෙම විධානය ක්රියාත්මක කිරීමෙන්, නියමිත තීරුවෙන් AUTO_INCREMENT ගුණාංගය ඉවත් කරයි. AUTO_INCREMENT තවදුරටත් අවශ්ය නොවූ විට හෝ නව වගු සැලැස්මකට මාරු වීමට අවශ්ය වූ විට මෙම ක්රියාවලිය භාවිතා වේ.
6. විශේෂ අවස්ථා සහ AUTO_INCREMENT හසුරවීම
AUTO_INCREMENT සම්බන්ධයෙන් විශේෂ අවස්ථා කිහිපයක් පවතින අතර, ඒවා නිසි ලෙස හසුරවා නොගත්හොත් අනපේක්ෂිත හැසිරීමක් සිදුවිය හැක.
6.1 උපරිම අගය ඉක්මවන විට
AUTO_INCREMENT කොලම් එකක් integer වර්ගයක් නම්, එම දත්ත වර්ගයක උපරිම වටිනාකමක් තිබේ. උදාහරණයක් ලෙස, INT සඳහා උපරිම වටිනාකම 2,147,483,647 යි. මෙම සීමාව ඉක්මවා ඇතුළත් කිරීමට උත්සාහ කළහොත්, දෝෂයක් සිදුවේ. මෙම ගැටලුව වළක්වා ගැනීම සඳහා, අවශ්ය විට එම කොලම් වර්ගය විශාල එකකට (උදාහරණයක් ලෙස, BIGINT) වෙනස් කිරීම සලකා බලන්න.
6.2 දත්ත මකා දැමීමෙන් පසු හැසිරීම
ඉහළම AUTO_INCREMENT වටිනාකම ඇති පේළිය මකා දැම්නහොත්, එම වටිනාකම නැවත භාවිතා නොවේ. උදාහරණයක් ලෙස, ඔබට ID 1 සිට 10 දක්වා තිබේ නම් සහ ID 10 ඇති පේළිය මකා දමන්නේ නම්, මීළඟ ඇතුළත් කරන පේළියට තවමත් ID 11 ලැබේ. දත්ත ස්ථිරභාවය පවත්වා ගැනීම සඳහා මෙම හැසිරීම තේරුම් ගැනීම වැදගත් වේ.
6.3 ID ගණන් අනුපිළිවෙලින් නොවිය හැක
AUTO_INCREMENT කොලම් සාමාන්යයෙන් අනුපිළිවෙලින් සංඛ්යා ජනනය කරයි. කෙසේ වෙතත්, පේළි මකා දැමීම, ගනුදෙනු පිටකර ගැනීම හෝ සේවාදායකය නැවත ආරම්භ කිරීම වැනි මෙහෙයුම් අනුපිළිවෙලේ ফাঁසි ඇති කළ හැක. මෙය සිදුවන්නේ AUTO_INCREMENT වටිනාකම් cache කර තබා ගත හැකි නිසා ය. දැඩි අනුපිළිවෙල් සංඛ්යාකරණය අවශ්ය නම්, ඔබේ දත්ත සමුදායන සැලසුම සහ සැකසුම් පරීක්ෂා කළ යුතුය.
7. සාරාංශය
AUTO_INCREMENT යනු MySQL හි සුවිශේෂී හැඩගැස්මක් වන අතර එයින් අනන්ය හඳුනාගැනීම් ස්වයංක්රීයව ජනනය කළ හැක. කෙසේ වෙතත්, එයට සැලකිල්ලෙන් කළමනාකරණය කිරීම අවශ්ය වන අතර, විශේෂ කරුණු සහ සම්භාව්ය කාර්ය සාධනයට බලපෑම් තේරුම් ගත යුතුය. මෙම ලිපියෙහි, AUTO_INCREMENT හි මූලික භාවිතය සිට උසස් සැකසුම් ක්රම සහ අල්ලාස් තත්ත්ව සඳහා විසඳුම් දක්වා සියල්ල ආවරණය කර ඇත. නිවැරදිව භාවිතා කළ විට, එය දත්ත සමුදායන කළමනාකරණය සහ මෙහෙයුම් වඩාත් කාර්යක්ෂම සහ ඵලදායී කරයි.


