У меня есть две таблицы в моем .sqlite. Эти две таблицы почти идентичны по структуре / содержанию, и я хочу, чтобы один столбец первой таблицы был заменен одним столбцом второй таблицы.

Вот что у меня есть:

таблицы

Я хочу:

  • в Документах added должно стать oldadded (для резервного копирования)
  • затем замените весь столбец, added в Documents , на весь столбец, added в doc3sept .

До сих пор мне удалось выбрать added doc3sept с SELECT added FROM doc3sept , но я застрял в замене старых значений added Documents .

1 ответ1

0

Переименование столбцов в SQLite не поддерживается - см. Здесь.

Сначала добавьте oldadded добавленный столбец:

ALTER TABLE Documents ADD COLUMN oldadded int

Для обновления значений столбцов из другой таблицы вы не можете использовать UPDATE в SQLite. Вы можете использовать только команду INSERT OR REPLACE .

Итак, следующий запуск:

REPLACE INTO Documents  (id, oldadded)
SELECT id, added FROM Documents
ON CONFLICT REPLACE

Затем запустите:

REPLACE INTO Documents  (id, added)
SELECT id, added FROM doc3sept 
WHERE EXISTS (SELECT * FROM Documents WHERE doc3sept.id=Documents.id)
ON CONFLICT REPLACE

Будьте осторожны, чтобы сделать резервную копию, прежде чем делать это, если что-то не получается.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .