основні маніпуляції таблицями sqlite


0

У мене дві таблиці .sqlite. Ці дві таблиці майже однакові за структурою / змістом, і я хочу, щоб один стовпець першої таблиці був замінений на один стовпчик другої таблиці.

Ось що я маю:

столи

Я хочу:

  • в документах, addedповинні стати oldadded(мати резервну копію)
  • потім замінити весь стовпець addedз Documentsпо всій колоні addedз doc3sept.

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

Відповіді:


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

Будьте обережні, щоб мати резервну копію, перш ніж робити це, якщо щось не вдалося.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.