Saat ini saya memiliki tabel MySQL berikut: Employees (empID, empName, department);
Saya ingin mengubah tabel sebagai berikut: Employees (empID, department, empName);
Bagaimana ini bisa dilakukan dengan menggunakan ALTER
pernyataan?
Catatan: Saya hanya ingin mengubah posisi kolom.
SELECT *
pernyataan. (Memang, jika urutan nilai-nilai itu penting, kita harus menuliskannya secara eksplisit dalam pernyataan, tetapi mungkin OP tidak memiliki kendali penuh di sini.)SELECT
pernyataanAFTER column
dapat digunakanALTER TABLE ADD column
juga. (untuk kali berikutnya Anda menambahkan beberapa bidang.)Jawaban:
Jika empName adalah kolom VARCHAR (50):
EDIT
Per komentar, Anda juga dapat melakukan ini:
Perhatikan bahwa pengulangan
empName
disengaja. Anda harus memberi tahu MySQL bahwa Anda ingin tetap menggunakan nama kolom yang sama.Anda harus menyadari bahwa kedua versi sintaks khusus untuk MySQL. Mereka tidak akan berfungsi, misalnya, di PostgreSQL atau banyak DBMS lainnya.
Suntingan lain: Seperti yang ditunjukkan oleh @Luis Rossi dalam komentar, Anda harus menentukan definisi kolom yang diubah tepat sebelum
AFTER
pengubah. Contoh-contoh di atas baru saja dimilikiVARCHAR(50)
, tetapi jika Anda memerlukan karakteristik lain (sepertiNOT NULL
atau nilai default) Anda harus memasukkannya juga. Konsultasikan pada dokumenALTER TABLE
untuk info lebih lanjut.sumber
COLUMN
kata kunci opsional dalamALTER TABLE
pernyataan. Saya lebih suka menggunakannya karena saya pikir itu membuat pernyataan itu lebih mudah dibaca.NOT NULL DEFAULT 1
, ini dilakukan tepat setelah jenis kolom dalam contohVARCHAR(50)
Ubah posisi kolom:
Jika Anda perlu memindahkannya ke posisi pertama Anda harus menggunakan istilah PERTAMA pada akhir kueri ALTER TABLE CHANGE [COLUMN]:
sumber
phpMyAdmin menyediakan GUI untuk ini dalam tampilan struktur tabel. Periksa untuk memilih kolom yang ingin Anda pindahkan dan klik aksi perubahan di bagian bawah daftar kolom. Anda kemudian dapat mengubah semua properti kolom dan Anda akan menemukan fungsi 'bergerak kolom' di ujung kanan layar.
Tentu saja ini semua hanya membangun pertanyaan di jawaban atas yang sangat baik tetapi penggemar GUI mungkin menghargai alternatifnya.
versi phpMyAdmin saya adalah 4.1.7
sumber
Saya harus menjalankan ini untuk kolom yang diperkenalkan pada tahap akhir suatu produk, pada 10+ tabel. Jadi tuliskan skrip cepat yang tidak rapi ini untuk menghasilkan perintah alter untuk semua tabel 'relevan'.
sumber