ලිපි නාමාවලිය
MySQL බහු ක්ෂේත්ර ස්ථාන වැඩි කිරීමට එකතු කිරීම වෙනස් කරන්නද? තීරු ප්රකාශය වෙනස් කිරීමේ භාවිතය පිළිබඳ සවිස්තරාත්මක පැහැදිලි කිරීම
MySQL ALTER විධානය
අපට දත්ත වගු නාමය වෙනස් කිරීමට හෝ දත්ත වගු ක්ෂේත්ර වෙනස් කිරීමට අවශ්ය වූ විට, අපි MySQL ALTER විධානය භාවිතා කළ යුතුය.
මෙම නිබන්ධනය ආරම්භ කිරීමට පෙර, testalter_tbl නමින් වගුවක් නිර්මාණය කරමු.
root@host# mysql -u root -p password; Enter password:******* mysql> use chenweiliang; Database changed mysql> create table testalter_tbl -> ( -> i INT, -> c CHAR(1) -> ); Query OK, 0 rows affected (0.05 sec) mysql> SHOW COLUMNS FROM testalter_tbl; +-------+---------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------+---------+------+-----+---------+-------+ | i | int(11) | YES | | NULL | | | c | char(1) | YES | | NULL | | +-------+---------+------+-----+---------+-------+ 2 rows in set (0.00 sec)
වගු ක්ෂේත්ර මකන්න, එකතු කරන්න හෝ වෙනස් කරන්න
පහත දැක්වෙන විධානය ඉහත නිර්මාණය කර ඇති වගුවේ i තීරුව අතහැරීමට DROP වගන්තිය සමඟ ALTER විධානය භාවිතා කරයි:
mysql> ALTER TABLE testalter_tbl DROP i;
දත්ත වගුවේ එක් ක්ෂේත්රයක් පමණක් ඉතිරිව තිබේ නම් ක්ෂේත්රයක් මකා දැමීමට DROP භාවිතා කළ නොහැක.
දත්ත වගුවට තීරු එකතු කිරීම සඳහා MySQL හි ADD වගන්තිය භාවිතා වේ.පහත උදාහරණය testalter_tbl වගුවට i ක්ෂේත්රය එකතු කර දත්ත වර්ගය නිර්වචනය කරයි:
mysql> ALTER TABLE testalter_tbl ADD i INT;
ඉහත විධානය ක්රියාත්මක කිරීමෙන් පසු, i ක්ෂේත්රය ස්වයංක්රීයව දත්ත වගු ක්ෂේත්රවල අවසානයට එකතු වේ.
mysql> SHOW COLUMNS FROM testalter_tbl; +-------+---------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------+---------+------+-----+---------+-------+ | c | char(1) | YES | | NULL | | | i | int(11) | YES | | NULL | | +-------+---------+------+-----+---------+-------+ 2 rows in set (0.00 sec)
ඔබට නව ක්ෂේත්රයේ පිහිටීම සඳහන් කිරීමට අවශ්ය නම්, ඔබට MySQL (සකසන්න) විසින් සපයන ලද FIRST යන මූල පදය භාවිතා කළ හැක.ස්ථානගත කිරීමපළමු තීරුව), ක්ෂේත්ර නාමයෙන් පසුව (ක්ෂේත්රයකට පසුව සකසා ඇත).
පහත දැක්වෙන ALTER TABLE ප්රකාශය උත්සාහ කරන්න, සාර්ථක ක්රියාත්මක කිරීමෙන් පසු, වගු ව්යුහයේ වෙනස්කම් බැලීමට SHOW COLUMNS භාවිතා කරන්න:
ALTER TABLE testalter_tbl DROP i; ALTER TABLE testalter_tbl ADD i INT FIRST; ALTER TABLE testalter_tbl DROP i; ALTER TABLE testalter_tbl ADD i INT AFTER c;
FIRST සහ AFTER මූලපද භාවිතා වන්නේ ADD වගන්තියේ පමණි, එබැවින් ඔබට දත්ත වගු ක්ෂේත්රයක පිහිටීම නැවත සැකසීමට අවශ්ය නම්, ඔබ ප්රථමයෙන් ක්ෂේත්රය මකා දැමීමට DROP භාවිතා කළ යුතු අතර පසුව ක්ෂේත්රය එක් කිරීමට සහ ස්ථානය සැකසීමට ADD භාවිතා කළ යුතුය.
ක්ෂේත්ර වර්ගය සහ නම වෙනස් කරන්න
ඔබට ක්ෂේත්ර වර්ගය සහ නම වෙනස් කිරීමට අවශ්ය නම්, ඔබට ALTER විධානයේ ඇති MODIFY හෝ CHANGE වගන්තිය භාවිතා කළ හැක.
උදාහරණයක් ලෙස, c ක්ෂේත්ර වර්ගය CHAR(1) සිට CHAR(10) දක්වා වෙනස් කිරීමට, පහත විධානය ක්රියාත්මක කරන්න:
mysql> ALTER TABLE testalter_tbl MODIFY c CHAR(10);
CHANGE වගන්තිය සමඟ, වාක්ය ඛණ්ඩය බෙහෙවින් වෙනස් ය.CHANGE මූල පදයෙන් පසු වහාම ඔබට වෙනස් කිරීමට අවශ්ය ක්ෂේත්රයේ නම වේ, පසුව නව ක්ෂේත්ර නාමය සහ වර්ගය සඳහන් කරන්න.පහත උදාහරණය උත්සාහ කරන්න:
mysql> ALTER TABLE testalter_tbl CHANGE i j BIGINT;
mysql> ALTER TABLE testalter_tbl CHANGE j j INT;
ශුන්ය සහ පෙරනිමි අගයන් මත ALTER TABLE හි බලපෑම
ඔබ ක්ෂේත්රයක් වෙනස් කරන විට, ඔබට පමණක් ඇතුළත් කළ යුතුද නැතහොත් පෙරනිමි අගයක් සකසන්නේද යන්න සඳහන් කළ හැක.
පහත උදාහරණය j ක්ෂේත්රය NULL නොවන බවත් පෙරනිමි අගය 100 බවත් සඳහන් කරයි.
mysql> ALTER TABLE testalter_tbl -> MODIFY j BIGINT NOT NULL DEFAULT 100;
ඔබ පෙරනිමි අගයක් සකසා නොමැති නම්, MySQL ස්වයංක්රීයව ක්ෂේත්රය පෙරනිමියෙන් NULL ලෙස සකසයි.
ක්ෂේත්ර පෙරනිමි අගය වෙනස් කරන්න
ක්ෂේත්රයක පෙරනිමි අගය වෙනස් කිරීමට ඔබට ALTER භාවිතා කළ හැක, පහත උදාහරණ උත්සාහ කරන්න:
mysql> ALTER TABLE testalter_tbl ALTER i SET DEFAULT 1000; mysql> SHOW COLUMNS FROM testalter_tbl; +-------+---------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------+---------+------+-----+---------+-------+ | c | char(1) | YES | | NULL | | | i | int(11) | YES | | 1000 | | +-------+---------+------+-----+---------+-------+ 2 rows in set (0.00 sec)
පහත උදාහරණයේ ඇති පරිදි ක්ෂේත්රයක පෙරනිමි අගය ඉවත් කිරීමට ඔබට DROP වගන්තිය සමඟ ALTER විධානය භාවිතා කළ හැක:
mysql> ALTER TABLE testalter_tbl ALTER i DROP DEFAULT; mysql> SHOW COLUMNS FROM testalter_tbl; +-------+---------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------+---------+------+-----+---------+-------+ | c | char(1) | YES | | NULL | | | i | int(11) | YES | | NULL | | +-------+---------+------+-----+---------+-------+ 2 rows in set (0.00 sec) Changing a Table Type:
දත්ත වගු වර්ගය වෙනස් කිරීම ALTER විධානය සහ TYPE වගන්තිය භාවිතයෙන් සිදු කළ හැක.පහත උදාහරණය උත්සාහ කරන්න, එහිදී අපි testalter_tbl වගුවේ වර්ගය MYISAM ලෙස වෙනස් කරමු:
සටහන:දත්ත වගු වර්ගය බැලීම සඳහා, ඔබට SHOW TABLE STATUS ප්රකාශය භාවිතා කළ හැක.
mysql> ALTER TABLE testalter_tbl ENGINE = MYISAM; mysql> SHOW TABLE STATUS LIKE 'testalter_tbl'\G *************************** 1. row **************** Name: testalter_tbl Type: MyISAM Row_format: Fixed Rows: 0 Avg_row_length: 0 Data_length: 0 Max_data_length: 25769803775 Index_length: 1024 Data_free: 0 Auto_increment: NULL Create_time: 2007-06-03 08:04:36 Update_time: 2007-06-03 08:04:36 Check_time: NULL Create_options: Comment: 1 row in set (0.00 sec)
වගුවේ නම වෙනස් කරන්න
ඔබට දත්ත වගුවේ නම වෙනස් කිරීමට අවශ්ය නම්, ඒ සඳහා ඔබට ALTER TABLE ප්රකාශයේ RENAME වගන්තිය භාවිතා කළ හැක.
දත්ත වගුව testalter_tbl alter_tbl ලෙස නැවත නම් කිරීමට පහත උදාහරණය උත්සාහ කරන්න:
mysql> ALTER TABLE testalter_tbl RENAME TO alter_tbl;
ALTER විධානය MySQL දත්ත වගු මත දර්ශක සෑදීමට සහ මකා දැමීමට ද භාවිතා කළ හැක, එය අපි මීළඟ පරිච්ඡේද වලින් හඳුන්වා දෙන්නෙමු.
වෙනත් භාවිතයන් වෙනස් කරන්න
ගබඩා එන්ජිම වෙනස් කරන්න: එය myisam ලෙස වෙනස් කරන්න
alter table tableName engine=myisam;
විදේශීය යතුරු සීමාව ඉවත් කරන්න: keyName යනු විදේශීය යතුරු අන්වර්ථයකි
alter table tableName drop foreign key keyName;
නවීකරණය කරන ලද ක්ෂේත්රයේ සාපේක්ෂ පිහිටීම: මෙහි name1 යනු වෙනස් කළ යුතු ක්ෂේත්රයයි, වර්ගය1 යනු ක්ෂේත්රයේ මුල් වර්ගයයි, පළමුව සහ පසුව තෝරාගත හැක, එය පැහැදිලි විය යුතුය, පළමුව පළමුව තබා ඇති අතර පසුව නම2 ට පසුව තබා ඇත. ක්ෂේත්රය
alter table tableName modify name1 type1 first|after name2;
Hope Chen Weiliang බ්ලොග් ( https://www.chenweiliang.com/ ) shared "MySQL alter add to increase field positions? වෙනස් කරන තීරු ප්රකාශයේ භාවිතය පිළිබඳ සවිස්තරාත්මක පැහැදිලි කිරීම" ඔබට ප්රයෝජනවත් වේ.
මෙම ලිපියේ සබැඳිය බෙදා ගැනීමට සාදරයෙන් පිළිගනිමු:https://www.chenweiliang.com/cwl-495.html
