Hanya untuk membuat ini eksplisit, jawaban di bawah ini (menggunakan ALTER TABLE) akan, pada kenyataannya, bekerja bahkan jika kolom sudah berisi data. Namun, mengubah kolom float menjadi kolom integer akan menyebabkan nilai non-integer di dalamnya dibulatkan ke integer terdekat.
Pengingat ramah - Default untuk kolom adalah NULLABLE, jadi jika Anda memiliki kolom NOT NULL, jangan lupa untuk menggunakan "MODIFY columnname INTEGER NOT NULL" atau Anda akan mengubah kolom Anda dari NOT NULL ke NULL.
Despertar
3
Apakah tabel akan menghapus data di atas meja atau gagal pada eksekusi jika ada sesuatu yang tidak sesuai dengan jenis kolom baru?
EndermanAPM
1
ALTER TABLE tablename MODIFY nama kolom INTEGER tidak ditandatangani; <- jika Anda peduli dengan kolom baru yang tidak ditandatangani. Adalah kasus saya.
mircealungu
Saya pikir peringatan @despertars mungkin juga relevan untuk menjaga spesifikasi CHARSET atau COLLATE.
!! Tidak menyimpan batasan unik, tetapi harus mudah diperbaiki dengan ifparameter -parameter lain concat. Saya akan menyerahkannya kepada pembaca untuk mengimplementasikannya jika diperlukan ..
ALTER TABLE
) akan, pada kenyataannya, bekerja bahkan jika kolom sudah berisi data. Namun, mengubah kolom float menjadi kolom integer akan menyebabkan nilai non-integer di dalamnya dibulatkan ke integer terdekat.Jawaban:
http://dev.mysql.com/doc/refman/5.1/en/alter-table.html
Ini akan mengubah tipe data dari kolom yang diberikan
Bergantung pada berapa banyak kolom yang ingin Anda modifikasi, mungkin yang terbaik adalah membuat skrip, atau menggunakan semacam GUI klien mysql
sumber
sumber
Anda juga dapat menggunakan ini:
sumber
Jika Anda ingin mengubah semua kolom dari jenis tertentu ke jenis lain, Anda dapat membuat kueri menggunakan kueri seperti ini:
Misalnya, jika Anda ingin mengubah kolom dari
tinyint(4)
menjadibit(1)
, jalankan seperti ini:dan dapatkan output seperti ini:
!! Tidak menyimpan batasan unik, tetapi harus mudah diperbaiki dengan
if
parameter -parameter lainconcat
. Saya akan menyerahkannya kepada pembaca untuk mengimplementasikannya jika diperlukan ..sumber
Mis:
sumber
Anda menggunakan
alter table ... change ...
metode ini, misalnya:sumber
sumber
https://dev.mysql.com/doc/refman/8.0/id/alter-table.html
Anda juga dapat menetapkan nilai default untuk kolom cukup tambahkan kata kunci DEFAULT diikuti oleh nilai.
Ini juga berfungsi untuk MariaDB (diuji versi 10.2)
sumber
Jika Anda ingin mengubah detail kolom, tambahkan komentar, gunakan ini
sumber