បញ្ជីអត្ថបទ
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)
លុប បន្ថែម ឬកែប្រែវាលតារាង
ពាក្យបញ្ជាខាងក្រោមប្រើពាក្យបញ្ជា ALTER ជាមួយឃ្លា DROP ដើម្បីទម្លាក់ជួរឈរ i នៃតារាងដែលបានបង្កើតខាងលើ៖
mysql> ALTER TABLE testalter_tbl DROP i;
DROP មិនអាចប្រើដើម្បីលុបវាលមួយបានទេ ប្រសិនបើមានវាលតែមួយនៅសល់ក្នុងតារាងទិន្នន័យ។
ឃ្លា ADD ត្រូវបានប្រើនៅក្នុង MySQL ដើម្បីបន្ថែមជួរឈរទៅតារាងទិន្នន័យ។ ឧទាហរណ៍ខាងក្រោមបន្ថែមវាល i ទៅក្នុងតារាង testalter_tbl និងកំណត់ប្រភេទទិន្នន័យ៖
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)
ប្រសិនបើអ្នកត្រូវការបញ្ជាក់ទីតាំងនៃវាលថ្មី អ្នកអាចប្រើពាក្យគន្លឹះ FIRST ដែលផ្តល់ដោយ MySQL (setទីតាំងជួរឈរទីមួយ) ឈ្មោះវាលបន្ទាប់ពី (កំណត់បន្ទាប់ពីវាលមួយ) ។
សាកល្បងសេចក្តីថ្លែងការណ៍ 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 ដើម្បីបន្ថែមវាល និងកំណត់ទីតាំង។
កែប្រែប្រភេទ និងឈ្មោះវាល
ប្រសិនបើអ្នកត្រូវការកែប្រែប្រភេទវាល និងឈ្មោះ អ្នកអាចប្រើឃ្លា MODIFY ឬ CHANGE ក្នុងពាក្យបញ្ជា ALTER ។
ឧទាហរណ៍ ដើម្បីផ្លាស់ប្តូរប្រភេទវាល 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 លើតម្លៃ Null និង Default
នៅពេលអ្នកកែប្រែវាលមួយ អ្នកអាចបញ្ជាក់ថាតើត្រូវរួមបញ្ចូលតែ ឬថាតើត្រូវកំណត់តម្លៃលំនាំដើម។
ឧទាហរណ៍ខាងក្រោមបញ្ជាក់ថាវាល 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)
អ្នកក៏អាចប្រើពាក្យបញ្ជា ALTER ជាមួយនឹងឃ្លា DROP ដើម្បីលុបតម្លៃលំនាំដើមនៃវាលមួយ ដូចក្នុងឧទាហរណ៍ខាងក្រោម៖
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)
កែប្រែឈ្មោះតារាង
ប្រសិនបើអ្នកត្រូវការកែប្រែឈ្មោះតារាងទិន្នន័យ អ្នកអាចប្រើឃ្លា RENAME នៅក្នុងសេចក្តីថ្លែងការណ៍ ALTER TABLE ដើម្បីធ្វើដូច្នេះបាន។
សាកល្បងឧទាហរណ៍ខាងក្រោមដើម្បីប្តូរឈ្មោះតារាងទិន្នន័យ 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 Blog ( https://www.chenweiliang.com/ ) shared "MySQL alter add ដើម្បីបង្កើនមុខតំណែងវាលច្រើន? ការពន្យល់លម្អិតនៃការប្រើប្រាស់សេចក្តីថ្លែងការណ៍ជួរឈរកែប្រែ" មានប្រយោជន៍សម្រាប់អ្នក។
សូមស្វាគមន៍ចំពោះការចែករំលែកតំណភ្ជាប់នៃអត្ថបទនេះ៖https://www.chenweiliang.com/cwl-495.html
សូមស្វាគមន៍មកកាន់ឆានែល Telegram នៃប្លុករបស់ Chen Weiliang ដើម្បីទទួលបានព័ត៌មានថ្មីៗចុងក្រោយបង្អស់!
📚 មគ្គុទ្ទេសក៍នេះមានតម្លៃមហាសាល 🌟នេះជាឱកាសដ៏កម្រ សូមកុំអូសរំលង! ⏰⌛💨
Share និង Like ប្រសិនបើអ្នកចូលចិត្ត!
ការចែករំលែក និងការចូលចិត្តរបស់អ្នកគឺជាការលើកទឹកចិត្តបន្តរបស់យើង!