Saya perlu menambahkan beberapa kolom ke tabel tetapi posisikan kolom setelah kolom disebut lastname
.
Saya sudah mencoba ini:
ALTER TABLE `users` ADD COLUMN
(
`count` smallint(6) NOT NULL,
`log` varchar(12) NOT NULL,
`status` int(10) unsigned NOT NULL
)
AFTER `lastname`;
Saya mendapatkan kesalahan ini:
Anda memiliki kesalahan dalam sintaks SQL Anda; periksa manual yang sesuai dengan versi server MySQL Anda untuk sintaks yang tepat untuk digunakan dekat ') SETELAH
lastname
' pada baris 7
Bagaimana saya bisa menggunakan SETELAH dalam kueri seperti ini?
ALTER TABLE
sintaksnya sedikit berbeda antar dialek.Jawaban:
Coba ini
periksa sintaks
sumber
ADD
,ALTER
,DROP
, danCHANGE
klausa diizinkan dalam satuALTER TABLE
pernyataan, dipisahkan dengan koma. Ini adalah ekstensi MySQL ke SQL standar, yang hanya mengizinkan satu dari setiap klausa per pernyataan ALTER TABLE.Jika Anda ingin menambahkan satu kolom setelah bidang tertentu, maka kueri MySQL berikut ini akan berfungsi:
Jika Anda ingin menambahkan beberapa kolom, maka Anda harus menggunakan perintah 'ADD' setiap kali untuk sebuah kolom. Inilah permintaan MySQL untuk ini:
Tunjuk ke catatan
Dalam metode kedua,
ADD COLUMN
kolom terakhir seharusnya menjadi kolom pertama yang ingin Anda tambahkan ke tabel.Misalnya: jika Anda ingin menambahkan
count
,log
,status
dalam urutan yang tepat setelahlastname
, maka sintaks akan benar-benar menjadi:sumber
count
,log
,status
ataucount
,status
,log
?Anda tidak bisa menyebut beberapa nama kolom dengan koma
ADD COLUMN
. Anda perlu menyebutkanADD COLUMN
setiap kali Anda menentukan kolom baru.sumber
Yang ini benar:
sumber
Anda dapat melakukannya dengan ini, bekerja dengan baik untuk saya.
sumber
Satu kemungkinan adalah untuk tidak repot menyusun ulang kolom dalam tabel dan cukup memodifikasinya dengan menambahkan kolom. Lalu, buat tampilan yang memiliki kolom dalam urutan yang Anda inginkan - dengan asumsi bahwa urutannya benar-benar penting. Tampilan dapat dengan mudah diubah untuk mencerminkan pemesanan apa pun yang Anda inginkan. Karena saya tidak dapat membayangkan bahwa urutan akan penting untuk aplikasi terprogram, tampilan harus cukup untuk pertanyaan manual yang mungkin penting.
sumber
Ini akan memberikan hasil yang bagus.
sumber
Ini berfungsi baik untuk saya:
sumber
Solusi yang bekerja untuk saya dengan nilai default 0 adalah sebagai berikut
sumber
Kalau tidak:
Akan menempatkan mereka dalam urutan yang Anda inginkan saat merampingkan pernyataan SETELAH.
sumber