Как привести структуру одной таблицы к виду структуры другой таблицы?
Есть две примерно одинаковых, но не совсем по своей структуре таблицы, т.е. в одной таблице есть небольшое количество полей, которых нет в другой и наоборот, во второй таблице есть некоторые поля, которых нет в первой.
К примеру, table1 и table2.
В table1 столбцы: A1, A2, B2, B3, C1.
В table2 столбцы: A1, A3, B1, B2, C2.
Мне надо привести table1 к виду table2, то есть удалить из неё столбцы, которых нет в table2, и добавить которые есть в table2, но нет в table1. Конечно, это можно сделать вручную, но хотелось бы SQL запросом.
Нет не копия данных таблицы а копия структуры, то есть чтобы в table1 были только такие столбцы как в table2, то есть недостающие - добавить, лишние удалить
если на данные пофиг то и таблицу грохнуть можно...
SELECT * into TABLE1 FROM TABLE2 WHERE 1=0; <- это не скопирует данные, а скопирует структуру во вновь созданной TABLE1
SELECT * INTO temp.table0 FROM table2 WHERE 1=0; //создаём временную таблицу
INSERT INTO temp.table0 (A1, B2) SELECT A1, B2 FROM table1; //копируем в неё нужные столбцы
DROP TABLE table1;
SELECT * INTO table1 FROM temp.table0;
DROP TABLE temp.table0;
Владимир, звиняюсь за капризы, я недовысказался, или вы меня не допоняли, такой подход то понятен, указать столбцы которые надо создать и удалить, проблема только в том что эти столбцы могут каждый раз быть разными, то есть сейчас у меня есть table1 и table2 с одной структурой, и надо их привести к общему знаменателю, завтра это будут уже другие table1 и table2 с другой структурой, т.е. чтобы скажем в запросе указывать какие конкретно столбцы в table1 добавлять и удалять то для этого надо каждый раз изучать структуру новых table1 и table2, а столбцов больше сотни и в той и в другой таблицах, и делать это вручную не есть тру, поэтому я вот и думал может это можно сделать SQL скриптом, конечно если в SQL сделать нельзя то это непроблема сделать в любом ЯПе обращаясь к БД через API Sqlite3, но это костыльно.
Т.е. изначально структура table1 и table2 мне неизвестна.
Проблема в том, что в Sqlite'е нет dynamic sql...( на сколько я знаю)... те.... нельзя сгенерить текст SQL команды, а потом выполнить... => я не вижу возможности это сделать "изнутри" sqlite'а.... следовательно, а почему бы не сгенерить этот запрос из вне..? спросить у Sqlite'а список столбцов, сгенерить SQL и выполнить?