Форум сайта python.su
Использую БД для хранения данных. Данных не очень много, но со временем база будет расти. Тысячных таблиц не будет. Десяток таблиц и сотни строк данных, возможно.
SQLITE всем устраивала, пока не наткнулся на необходимость удалить колонку. А такой возможности у неё нет. Есть костыль, следующего вида:
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;
Офлайн
Если посмотреть, то данный пример удаляет все столбцы из таблицы t1, кроме a и b.
Может проще разобраться с этим, чем сразу бежать на другую базу.
Офлайн
agalenА мне-то надо удалить один, а оставить все остальные - а какие это, заранее не известно. Придется брать данные из таблицы, обрабатывать их, убирать из них нужную колонку и уже после этого подставлять в данный костыль. Смысла убиваться ради удаления одной записи не вижу.
Если посмотреть, то данный пример удаляет все столбцы из таблицы t1, кроме a и b.
Офлайн
Данный костыль как раз не требует работы с данными - только со структурой таблицы.
Если изменение структуры таблиц - частая операция, то может стоит посмотреть в сторону NoSQL.
Офлайн