2016-11-14 16 views
0

С уважением, квадрат для SQLDelight и предоставление типов api для взаимодействия sqlite db. Я делаю одну строку вставки, как показано ниже:Как сделать объемную вставку в квадрат sqldelight?

 MyTable.Insert_row insert_row = 
    new MyTableModel.Insert_row(
     mOpenHelper.getWritableDatabase(), 
     MyTable.FACTORY 
    ); 
    MyTable.bind(insert_row, data); 
    insert_row.program.executeInsert(); 

Есть ли способ выполнить массовое вложение для списка данных одновременно?

ответ

1

Вид. Есть два подхода. Так как SQLite 3.7.11 (входит в Android API 16 и выше), вы можете вставить несколько значений одновременно с SQLITE стороны:

INSERT INTO myTable 
VALUES (?, ?), (?, ?), (?, ?); 

, который, вероятно, не то, что вы хотите. До тех пор, пока вы только создание оператора вставки раз, связывание и выполнение нескольких строк на самом деле очень быстро:

MyTable.Insert_row insert_row = 
    new MyTableModel.Insert_row(
     mOpenHelper.getWritableDatabase(), 
     MyTable.FACTORY 
    ); 
for (Row row : rows) { 
    MyTable.bind(insert_row, row); 
    insert_row.program.executeInsert(); 
} 

, который, вероятно, ближе к тому, что вы хотите. На данный момент нет запланированной поддержки объемных вставок произвольного размера со стороны файла .sq.

Смежные вопросы