Saya mencoba memodifikasi tabel untuk membuat kolom kunci utama AUTO_INCREMENT
setelah fakta. Saya sudah mencoba SQL berikut, tetapi mendapat notifikasi kesalahan sintaksis.
ALTER TABLE document
ALTER COLUMN document_id AUTO_INCREMENT
Apakah saya melakukan sesuatu yang salah atau apakah ini tidak mungkin?
+ -------------------- + | VERSI () | + -------------------- + | 5.0.75-0ubuntu10.2 | + -------------------- +
sql
mysql
alter-table
C. Ross
sumber
sumber
Roman benar, tetapi perhatikan bahwa kolom auto_increment harus menjadi bagian dari KUNCI UTAMA atau KUNCI UNIK (dan dalam hampir 100% kasus, itu harus menjadi satu-satunya kolom yang membentuk KUNCI UTAMA):
sumber
Dalam kasus saya itu hanya berfungsi ketika saya meletakkan
not null
. Saya pikir ini adalah kendala.sumber
SQL untuk melakukan ini adalah:
Ada beberapa alasan mengapa SQL Anda mungkin tidak berfungsi. Pertama, Anda harus menentukan kembali tipe data (
INT
dalam hal ini). Juga, kolom yang Anda coba ubah harus diindeks (itu tidak harus menjadi kunci utama, tetapi biasanya itulah yang Anda inginkan). Selain itu, hanya ada satuAUTO_INCREMENT
kolom untuk setiap tabel. Jadi, Anda mungkin ingin menjalankan SQL berikut (jika kolom Anda tidak diindeks):Anda dapat menemukan informasi lebih lanjut di dokumentasi MySQL: http://dev.mysql.com/doc/refman/5.1/en/alter-table.html untuk sintaks kolom ubah dan http://dev.mysql.com/doc /refman/5.1/en/create-table.html untuk informasi lebih lanjut tentang menentukan kolom.
sumber
Anda harus menentukan jenis kolom sebelum
auto_increment
arahan, yaituALTER TABLE document MODIFY COLUMN document_id INT AUTO_INCREMENT
.sumber
MODIFY COLUMN
AUTO_INCREMENT
adalah bagian dari tipe data kolom, Anda harus menentukan tipe data lengkap untuk kolom lagi:(
int
diambil sebagai contoh, Anda harus mengaturnya dengan jenis kolom sebelumnya)sumber
Anda dapat melakukannya seperti ini:
sumber
AUTO_INCREMENT
adalah bagian dari tipe data kolom, Anda harus menentukan tipe data lengkap untuk kolom lagi:(int diambil sebagai contoh, Anda harus mengaturnya dengan jenis kolom sebelumnya)
sumber
Anda dapat menggunakan kueri berikut untuk membuat document_id bertambah secara otomatis
Lebih disukai untuk membuat kunci primer document_id juga
sumber
Pernyataan di bawah ini berfungsi. Perhatikan bahwa Anda perlu menyebutkan tipe data lagi untuk nama kolom (nyatakan ulang tipe data kolom sebelumnya).
sumber
Jika tidak ada di atas yang berhasil coba ini. Inilah yang saya lakukan di MYSQL dan ya, Anda perlu menulis nama kolom (document_id) dua kali.
sumber
Untuk memodifikasi kolom di mysql kami menggunakan ubah dan ubah kata kunci. Misalkan kita telah membuat tabel seperti:
Sekarang kami ingin mengubah jenis id kolom menjadi bilangan bulat dengan kenaikan otomatis. Anda bisa melakukan ini dengan perintah seperti:
sumber
Sintaksis Tabel Sebelumnya:
Untuk mengubah TransactionId ke kenaikan otomatis gunakan kueri ini
sumber
sumber
Seperti ini:
alter table document modify column id int(11) auto_increment;
sumber
Ketika Anda mendefinisikan kembali kolom itu lagi, Anda harus menentukan tipe data lagi dan menambahkan auto_increment sebagai bagian dari tipe data.
sumber
Menyetel kolom sebagai kunci utama dan auto_increment secara bersamaan:
sumber
ALTER TABLE table_name MODIFY COLUM id datatype auto_increment;
sumber
Gunakan pertanyaan berikut:
sumber