Apakah mungkin untuk mengubah tabel menambahkan kolom GANDA dalam satu pernyataan dalam sqlite? Berikut ini tidak akan berfungsi.
ubah tabel uji tambah kolom teks mycolumn1, tambahkan kolom teks mycolumn2;
Apakah mungkin untuk mengubah tabel menambahkan kolom GANDA dalam satu pernyataan dalam sqlite? Berikut ini tidak akan berfungsi.
ubah tabel uji tambah kolom teks mycolumn1, tambahkan kolom teks mycolumn2;
Jawaban:
Tidak, Anda harus menambahkannya satu per satu. Lihat diagram sintaks di bagian atas dokumentasi ALTER TABLE SQLite :
Tidak ada loop di ADD
cabang sehingga tidak ada pengulangan yang diizinkan.
Jawaban dari @mu terlalu pendek 'benar. Sebagai tambahan, menambahkan solusi yang dioptimalkan untuk menambahkan beberapa kolom menggunakan manfaat transaksi dalam SQL.
String alterTableQuery = "ALTER TABLE " + TABLE_NAME + " ADD COLUMN ";
List<String> newColumns = ..// Your new columns
db.beginTransaction();
for (String column : newColumns){
db.execSQL(alterTableQuery + column + " VARCHAR");
}
db.setTransactionSuccessful();
db.endTransaction();
Saya harap ini akan membantu seseorang.
Satu-satunya hal sejauh ini yang mungkin saya gunakan adalah
BEGIN TRANSACTION;
ALTER TABLE tblName ADD ColumnNameA TEXT DEFAULT '';
ALTER TABLE tblName ADD ColumnNameB TEXT DEFAULT '';
ALTER TABLE tblName ADD ColumnNameC TEXT DEFAULT '';
COMMIT
Perhatikan bahwa ada; dengan tujuan membuat kueri dibaca sebagai beberapa baris.
Lalu saya menjalankan kueri ini dan menambahkan beberapa kolom saat dijalankan ... Jadi, tidak dalam satu baris, tapi ya dalam satu kueri, itu mungkin.
ubah tabel test add kolom mycolumn1 teks; ubah tabel test add kolom mycolumn2 teks;
gunakan kueri redefined di atas
;
sebagai pemisah harus dieksekusi sebagai banyak pernyataan, dan itu sering kali penting. Jawaban lain sudah menunjukkan bahwa apa yang diminta OP itu tidak mungkin.