Как скопировать данные между двумя таблицами в SQLite? - PullRequest
8 голосов
/ 13 октября 2009

У меня есть две таблицы с разными столбцами, как это:

table1
(
    _id,
    title,
    name,
    number,
    address
)

table2
(
    _id,
    phone,
    name,
    address
)

Как я могу скопировать данные 'имя', 'адрес' из таблицы1 в таблицу2.

А у моего вопроса две ситуации:

  • Первое: table1, table2 в том же файле базы данных
  • Второе: таблица1 в файле data1.db, таблица2 в файле data2.db

1 Ответ

20 голосов
/ 13 октября 2009

Копирование в SQL работает так:

insert into table2 (name, address)
select name, address
from table1

Если значения столбца id_ совпадают, необходимо вставить и обновить

insert into table2 (name, address)
select name, address
from table1 t1
where not exists (select * from table2 t2 where t1._id = t2._id)
;
update table2 t2 name = (select name from table1 t2 where t1._id = t2._id)
;
update table2 t2 address = (select address from table1 t2 where t1._id = t2._id)

Если вам нужно скопировать столбцы между базами данных, вы сначала экспортируете их в файл (используйте любой формат, который вам нравится, например CSV), а затем вручную объедините этот файл со второй базой данных, поскольку вы не можете написать SQL, говорит "использовать эти структуры sqlite".

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...