Уведомления

Группа в Telegram: @pythonsu

#1 Янв. 30, 2012 08:54:51

n2b
От:
Зарегистрирован: 2011-02-10
Сообщения: 125
Репутация: +  0  -
Профиль   Отправить e-mail  

sqllite, замена

Использую БД для хранения данных. Данных не очень много, но со временем база будет расти. Тысячных таблиц не будет. Десяток таблиц и сотни строк данных, возможно.
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;
Но он под мои задачи не подходит, так как мне необходимо дропнуть 1 колонку, а остальное сохранить, как это сделать исходя из этого костыля не понятно.
Костыль взят отсюда: http://grass.osgeo.org/wiki/Sqlite_Drop_Column

Отсюда появилась необходимость заменить sqlite на другую БД.
Требований к БД никаких, кроме простого взаимодействия и легковесности.

Необходимые функции от бд:
Добавление таблиц.
Добавление колонок с данными.
Удаление определенной колонки.
Добавление данных в колонку.
Удаление данных из колонки.

Если еще и язык будет SQL (ALTER, INSERT, DROP and etc.) будет вообще замечательно, не придется переписывать все функции.

Посоветуйте пожалуйста.

python 2.7



Офлайн

#2 Янв. 30, 2012 10:06:34

agalen
От:
Зарегистрирован: 2011-03-23
Сообщения: 185
Репутация: +  17  -
Профиль   Отправить e-mail  

sqllite, замена

Если посмотреть, то данный пример удаляет все столбцы из таблицы t1, кроме a и b.
Может проще разобраться с этим, чем сразу бежать на другую базу.



Офлайн

#3 Янв. 30, 2012 10:39:06

n2b
От:
Зарегистрирован: 2011-02-10
Сообщения: 125
Репутация: +  0  -
Профиль   Отправить e-mail  

sqllite, замена

agalen
Если посмотреть, то данный пример удаляет все столбцы из таблицы t1, кроме a и b.
А мне-то надо удалить один, а оставить все остальные - а какие это, заранее не известно. Придется брать данные из таблицы, обрабатывать их, убирать из них нужную колонку и уже после этого подставлять в данный костыль. Смысла убиваться ради удаления одной записи не вижу.
Щас рассматриваю вариант с переработкой формы хранения данных, если же опять все будет “тяжело”, то все равно хочу перейти на другую базу, где элементарная функция реализована.



Офлайн

#4 Янв. 30, 2012 11:44:24

agalen
От:
Зарегистрирован: 2011-03-23
Сообщения: 185
Репутация: +  17  -
Профиль   Отправить e-mail  

sqllite, замена

Данный костыль как раз не требует работы с данными - только со структурой таблицы.
Если изменение структуры таблиц - частая операция, то может стоит посмотреть в сторону NoSQL.



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version