Вопрос по sql, sqlite, ios, c# – SQLite на iOS - SQL для копирования из одного файла в другой

3

У меня есть 2 файла базы данных в моем приложении для iOS:

  • An original database (readonly, kept in my app's home directory)
  • The user's database (kept in the user's Documents folder)

Мне нужно выполнить SQL-запрос для копирования из исходной базы данных пользователю, что-то вроде:

INSERT INTO UserDatabase.MyTable
SELECT * FROM OriginalDatabase.MyTable;

Возможно ли это из SQLite на iOS? Проблема в том, что две базы данных находятся в разных папках. Я хотел бы избежать выполнения этой работы в коде (C #), который является очевидным способом сделать это, только намного медленнее.

Мое приложение написано на C # / MonoTouch, но это, вероятно, не имеет значения.

Это работает на рабочем столе (мы скоро попробуем на устройстве). jonathanpeppers
Конкретные записи точно так же, как мой пример выше, может бытьWHERE пункт, присоединяется и т. д., но я привел простой пример. jonathanpeppers
Дубликатstackoverflow.com/questions/2359205/… Peter M
Спасибо, Питер, я попробую. Мне интересно, будет ли это работать в моей ситуации, однако. Одна база данных находится в папке только для чтения (мне просто нужноSELECT из него), посмотрим, работает ли он. jonathanpeppers
Вы хотите скопировать всю базу данных, таблицу или отдельные записи на основе запроса? Lefteris

Ваш Ответ

1   ответ
4

Вот SQL, чтобы сделать это на iOS:

    ATTACH DATABASE '../YourApp.app/YourDatabase.db' AS OriginalDatabase;

    INSERT INTO Main.MyTable
    SELECT * FROM OriginalDatabase.MyTable;

    DETACH DATABASE OriginalDatabase;

Обратите внимание на использованиеMainэто база данных, с которой вы связаныSqliteConnectionв моем случае он был расположен вDocuments папка.

Вы можете сделать все, что вам нужно противOriginalDatabase, присоединения, отборы и т. д.

Похожие вопросы