У меня вопрос о SQL, особенно SQLite3. У меня две таблицы, назовем их main_table
и temp_table
. Эти таблицы основаны на одной и той же реляционной схеме, поэтому они имеют одинаковые столбцы, но разные строки (значения).SQL - обновить основную таблицу, используя временную таблицу
Теперь то, что я хочу сделать:
Для каждой строки main_table
Я хочу, чтобы заменить его, если есть строка в temp_table
с тем же ID. В противном случае я хочу сохранить старую строку в таблице.
Я думал об использовании какого-то joins
, но это не обеспечивает то, что я хочу.
Не могли бы вы дать мне совет?
EDIT: ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ:
Я хотел бы избежать написания всех столбцов, потому что эти таблицы conains десятки атрибутов и так как я должен обновить все столбцы, не может быть необходимо выписать все из них.
Совсем похоже на этот вопрос: http://stackoverflow.com/questions/329197/cross-table-update-in-sqlite3 – Wolph
Нет подсказки о sqlite, но пахнет, как будто это работа для «MERGE» или «UPDATE» 'с подзапросом. –
Зачем подбирать, @Thomas Tchnhernich? Просто обновите. –