Untuk mengganti nama kolom yang ada di tabel MySQL, Anda perlu menggabungkan pernyataan ALTER TABLE [table_name] CHANGE [current_column_name] [new_column_name] [data_type]; 3 dengan klausa ALTER TABLE [table_name] CHANGE [current_column_name] [new_column_name] [data_type]; 4 atau ALTER TABLE [table_name] CHANGE [current_column_name] [new_column_name] [data_type]; 5
Tutorial ini akan membantu Anda mempelajari cara menulis pernyataan ALTER TABLE [table_name] CHANGE [current_column_name] [new_column_name] [data_type]; 3 dengan kedua klausa
Misalnya, Anda memiliki tabel ALTER TABLE [table_name] CHANGE [current_column_name] [new_column_name] [data_type]; 7 dengan struktur berikut
mysql> DESCRIBE students; +---------+----------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +---------+----------+------+-----+---------+-------+ | id | int | NO | PRI | NULL | | | name | tinytext | YES | | NULL | | | subject | tinytext | YES | | NULL | | | score | float | YES | | NULL | | | gender | tinytext | YES | | NULL | | +---------+----------+------+-----+---------+-------+ 5 rows in set (0.01 sec)
Seperti yang Anda lihat dari kumpulan hasil di atas, tabel ALTER TABLE [table_name] CHANGE [current_column_name] [new_column_name] [data_type]; 7 memiliki 5 kolom (atau bidang)
Klausa ALTER TABLE [table_name] CHANGE [current_column_name] [new_column_name] [data_type]; 4 memungkinkan Anda mengubah nama kolom tabel dan tipe data dengan sintaks berikut
ALTER TABLE [table_name] CHANGE [current_column_name] [new_column_name] [data_type];
Misalkan Anda ingin mengubah nama kolom ALTER TABLE students CHANGE id students_id INT; _0 menjadi ALTER TABLE students CHANGE id students_id INT; 1. Pernyataan SQL di bawah ini seharusnya berfungsi
ALTER TABLE students CHANGE id students_id INT; _
Meskipun kami tidak mengubah tipe data kolom ALTER TABLE students CHANGE id students_id INT; 0, klausa ALTER TABLE [table_name] CHANGE [current_column_name] [new_column_name] [data_type]; 4 mengharuskan Anda untuk meneruskan tipe data atau akan menimbulkan kesalahan
Mulai dari MySQL versi ALTER TABLE students CHANGE id students_id INT; 4, MySQL menambahkan klausa ALTER TABLE [table_name] CHANGE [current_column_name] [new_column_name] [data_type]; 5 sehingga Anda dapat mengganti nama kolom tanpa harus melewati tipe datanya juga
Sintaks untuk ALTER TABLE [table_name] CHANGE [current_column_name] [new_column_name] [data_type]; 5 adalah seperti yang ditunjukkan di bawah ini
ALTER TABLE [table_name] RENAME COLUMN [current_column_name] TO [new_column_name];
Misalnya, mari ganti nama kolom ALTER TABLE students CHANGE id students_id INT; 7 menjadi ALTER TABLE students CHANGE id students_id INT; 8
ALTER TABLE students RENAME COLUMN name TO first_name;
Ketika pernyataan di atas telah dieksekusi, Anda dapat menjalankan pernyataan ALTER TABLE students CHANGE id students_id INT; 9 lagi untuk memeriksa kolom yang diubah namanya
mysql> DESCRIBE students; +-------------+----------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------------+----------+------+-----+---------+-------+ | students_id | int | NO | PRI | NULL | | | first_name | tinytext | YES | | NULL | | | subject | tinytext | YES | | NULL | | | score | float | YES | | NULL | | | gender | tinytext | YES | | NULL | | +-------------+----------+------+-----+---------+-------+ 5 rows in set (0.00 sec)
Seperti yang Anda lihat dari output di atas, kami telah berhasil mengganti nama kolom tabel
Saat Anda ingin mengganti nama beberapa kolom, Anda dapat menambahkan beberapa ALTER TABLE [table_name] CHANGE [current_column_name] [new_column_name] [data_type]; 4 atau ALTER TABLE [table_name] CHANGE [current_column_name] [new_column_name] [data_type]; 5 klausa yang dipisahkan dengan koma
Lihatlah contoh pernyataan sql di bawah ini
ALTER TABLE students CHANGE id students_id INT, CHANGE name first_name TINYTEXT, CHANGE subject topic TINYTEXT; -- OR ALTER TABLE students RENAME COLUMN id TO students_id, RENAME COLUMN name TO first_name, RENAME COLUMN subject TO topic;
Harap diingat bahwa hak istimewa ALTER TABLE [table_name] RENAME COLUMN [current_column_name] TO [new_column_name]; _2 diperlukan agar Anda dapat menjalankan operasi ALTER TABLE [table_name] CHANGE [current_column_name] [new_column_name] [data_type]; 3
Selanjutnya, mari pelajari cara memeriksa dan menambahkan hak istimewa ALTER TABLE [table_name] RENAME COLUMN [current_column_name] TO [new_column_name]; 2 jika tidak ada untuk pengguna MySQL Anda
Memeriksa hak istimewa ALTER untuk pengguna MySQL Anda
Untuk memeriksa apakah pengguna MySQL Anda sudah memiliki hak istimewa ALTER TABLE [table_name] RENAME COLUMN [current_column_name] TO [new_column_name]; 2, Anda perlu menjalankan pernyataan ALTER TABLE [table_name] RENAME COLUMN [current_column_name] TO [new_column_name]; 6 dari Terminal
SHOW GRANTS FOR [user@];
Misalnya, ini adalah hasil yang saya dapatkan ketika saya menjalankan pernyataan untuk pengguna saya ALTER TABLE [table_name] RENAME COLUMN [current_column_name] TO [new_column_name]; 7
mysql> SHOW GRANTS FOR nathan@localhost; +----------------------------------------------------------------+ | Grants for nathan@localhost | +----------------------------------------------------------------+ | GRANT USAGE ON *.* TO `nathan`@`localhost` | | GRANT SELECT ON `school_db`.`students` TO `nathan`@`localhost` | +----------------------------------------------------------------+ 2 rows in set (0.00 sec)
Seperti yang Anda lihat, pengguna ALTER TABLE [table_name] RENAME COLUMN [current_column_name] TO [new_column_name]; _7 hanya memiliki hak istimewa ALTER TABLE [table_name] RENAME COLUMN [current_column_name] TO [new_column_name]; 9 untuk tabel ALTER TABLE [table_name] CHANGE [current_column_name] [new_column_name] [data_type]; 7 di database ALTER TABLE students RENAME COLUMN name TO first_name; 1
Tanpa hak istimewa ALTER TABLE [table_name] RENAME COLUMN [current_column_name] TO [new_column_name]; _2, maka pernyataan ALTER TABLE [table_name] CHANGE [current_column_name] [new_column_name] [data_type]; 3 akan menyebabkan MySQL melempar ALTER TABLE students RENAME COLUMN name TO first_name; 4 seperti yang ditunjukkan di bawah ini
ALTER TABLE students CHANGE id students_id INT; ERROR 1142 (42000): ALTER command denied to user 'nathan'@'localhost' for table 'students'
Untuk memberikan hak istimewa ALTER TABLE [table_name] RENAME COLUMN [current_column_name] TO [new_column_name]; _2 kepada pengguna, Anda perlu menjalankan pernyataan ALTER TABLE students RENAME COLUMN name TO first_name; 6 yang memiliki sintaks berikut
ALTER TABLE [table_name] CHANGE [current_column_name] [new_column_name] [data_type]; 0
Berikut adalah contoh pemberian hak istimewa ALTER TABLE [table_name] RENAME COLUMN [current_column_name] TO [new_column_name]; 2 kepada pengguna ALTER TABLE [table_name] RENAME COLUMN [current_column_name] TO [new_column_name]; 7. Anda perlu mengubah nama pengguna menjadi nama pengguna Anda yang sebenarnya
ALTER TABLE [table_name] CHANGE [current_column_name] [new_column_name] [data_type]; _1
Sekarang jalankan pernyataan ALTER TABLE [table_name] RENAME COLUMN [current_column_name] TO [new_column_name]; _6 lagi. Kali ini, Anda akan melihat hak istimewa ALTER TABLE [table_name] RENAME COLUMN [current_column_name] TO [new_column_name]; 2 muncul untuk pengguna MySQL Anda