Я пытаюсь написать функцию для удаления столбцов в sqlite (потому что иногда мне может потребоваться удалить слишком старые столбцы).
С FAQ по SQLite :
SQLite имеет ограниченную поддержку ALTER TABLE, которую можно использовать для добавления столбца в конец таблицы или для изменения имени таблицы,Если вы хотите внести более сложные изменения в структуру таблицы, вам придется заново создать таблицу.Вы можете сохранить существующие данные во временную таблицу, удалить старую таблицу, создать новую таблицу, а затем скопировать данные обратно из временной таблицы. Например, предположим, что у вас есть таблица с именем "t1" симена столбцов "a", "b" и "c" и которые вы хотите удалить из этой таблицы столбец "c".Следующие шаги иллюстрируют, как это можно сделать: BEGIN TRANSACTION; CREATE TEMPORARY TABLE t1_backup(a,b); INSERT INTO t1_backup SELECT a,b FROM t1; DROP TABLE t1; CREATE TABLE t1(a,b); INSERT INTO t1 SELECT a,b FROM t1_backup; DROP TABLE t1_backup; COMMIT;
SQLite имеет ограниченную поддержку ALTER TABLE, которую можно использовать для добавления столбца в конец таблицы или для изменения имени таблицы,Если вы хотите внести более сложные изменения в структуру таблицы, вам придется заново создать таблицу.Вы можете сохранить существующие данные во временную таблицу, удалить старую таблицу, создать новую таблицу, а затем скопировать данные обратно из временной таблицы.
Например, предположим, что у вас есть таблица с именем "t1" симена столбцов "a", "b" и "c" и которые вы хотите удалить из этой таблицы столбец "c".Следующие шаги иллюстрируют, как это можно сделать:
BEGIN TRANSACTION; CREATE TEMPORARY TABLE t1_backup(a,b); INSERT INTO t1_backup SELECT a,b FROM t1; DROP TABLE t1; CREATE TABLE t1(a,b); INSERT INTO t1 SELECT a,b FROM t1_backup; DROP TABLE t1_backup; COMMIT;