เป็นไปได้หรือไม่ที่จะแก้ไขตารางที่เพิ่มคอลัมน์หลายคอลัมน์ในคำสั่งเดี่ยวใน sqlite ต่อไปนี้จะไม่ทำงาน
แก้ไขการทดสอบตารางเพิ่มข้อความคอลัมน์ mycolumn1 เพิ่มข้อความคอลัมน์ mycolumn2;
เป็นไปได้หรือไม่ที่จะแก้ไขตารางที่เพิ่มคอลัมน์หลายคอลัมน์ในคำสั่งเดี่ยวใน sqlite ต่อไปนี้จะไม่ทำงาน
แก้ไขการทดสอบตารางเพิ่มข้อความคอลัมน์ mycolumn1 เพิ่มข้อความคอลัมน์ mycolumn2;
คำตอบ:
ไม่คุณต้องเพิ่มครั้งละหนึ่งรายการ ดูแผนภาพไวยากรณ์ที่ด้านบนของเอกสาร ALTER TABLEของSQLite :
ไม่มีการวนซ้ำในADD
สาขาดังนั้นจึงไม่อนุญาตให้ทำซ้ำ
คำตอบจาก @mu สั้นเกินไป 'ถูกต้อง ในฐานะที่เป็นพิเศษให้เพิ่มวิธีการแก้ปัญหาที่ดีที่สุดสำหรับการเพิ่มหลายคอลัมน์โดยใช้ประโยชน์ของการทำธุรกรรมใน 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();
ฉันหวังว่านี่จะช่วยให้ใครบางคน
สิ่งเดียวที่เป็นไปได้ที่ฉันใช้คือ
BEGIN TRANSACTION;
ALTER TABLE tblName ADD ColumnNameA TEXT DEFAULT '';
ALTER TABLE tblName ADD ColumnNameB TEXT DEFAULT '';
ALTER TABLE tblName ADD ColumnNameC TEXT DEFAULT '';
COMMIT
โปรดทราบว่ามี; โดยมีวัตถุประสงค์เพื่อทำให้แบบสอบถามสามารถอ่านได้หลายบรรทัด
จากนั้นฉันเรียกใช้คิวรีนี้และรับหลายคอลัมน์ที่เพิ่มเข้ามาเมื่อรัน ... ดังนั้นไม่ได้อยู่ในหนึ่งบรรทัด แต่ก็ใช่ในหนึ่งคิวรีที่เป็นไปได้
แก้ไขการทดสอบตารางเพิ่มข้อความคอลัมน์ mycolumn1; แก้ไขการทดสอบตารางเพิ่มข้อความคอลัมน์ mycolumn2;
ใช้ข้อความค้นหาที่กำหนดใหม่ด้านบน
;
ที่เป็นตัวคั่นต้องถูกเรียกใช้เป็นคำสั่งหลาย ๆ คำสั่งและมักจะมีความสำคัญ คำตอบอื่น ๆ แสดงให้เห็นแล้วว่าสิ่งที่ OP กำลังขอนั้นเป็นไปไม่ได้