បញ្ជីអត្ថបទ
តើធ្វើដូចម្តេចដើម្បីបន្ថែមវាលច្រើនដោយប្រើ សេចក្តីថ្លែងការណ៍ MySQL `ALTER ALTER ADD`? ការពន្យល់លម្អិតអំពីសេចក្តីថ្លែងការណ៍ `MODIUS Column`។
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 (កំណត់ទៅ ជួរឈរទីមួយ) និង AFTER field_name (កំណត់ឱ្យនៅបន្ទាប់ពីវាលជាក់លាក់មួយ) ដែលផ្តល់ ដោយ MySQL ។
សាកល្បងសេចក្តីថ្លែងការណ៍ 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;
សង្ឃឹមថា អត្ថបទ "ការបន្ថែមវាលច្រើនទៅក្នុង MySQL ដោយប្រើ ALTER TABLE? ការពន្យល់លម្អិតអំពីសេចក្តីថ្លែងការណ៍ 'MODIATE COLLECT'" ដែលបានចែករំលែកនៅលើ ប្លក់របស់ Chen Weiliang ( https://www.chenweiliang.com/ ) នឹងមានប្រយោជន៍សម្រាប់អ្នក។
សូមចែករំលែកតំណភ្ជាប់អត្ថបទនេះ៖ https://www.chenweiliang.com/cwl-495.html
