Найти - Пользователи
Полная версия: Обновление таблиц в БД
Начало » Python для новичков » Обновление таблиц в БД
1 2
lubocka
Осваиваю sqlite3
вот мне стало интересно такая вещь.
в начале я создаю таблицы, потом они заполняются. Со временем надо добавить столбец, потом еще, через некоторое время еще. А какой-то за ненадобностью устаревает и его надо удалить.

Вопрос: как это программно реализовать?

py.user.next
В SQLite такой фичи нет. Там многие команды, обычные для СУБД, не реализованы, а некоторые реализованы только наполовину. Если возьмёшь MySQL, то там можно.
http://www.sqlite.org/lang_altertable.html
vic57
 --добавление столбца
create table t1(name);
insert into t1(name) values('Vic');
insert into t1(name) values('Lee');
insert into t1(name) values('Joe');
alter table t1 add last_name;
-- удаление столбца
BEGIN TRANSACTION;
CREATE TEMPORARY TABLE t2(name);
INSERT INTO t2 SELECT name FROM t1;
DROP TABLE t1;
CREATE TABLE t1(name);
INSERT INTO t1 SELECT name FROM t2;
DROP TABLE t2;
COMMIT;

doza_and
lubocka
Со временем надо добавить столбец, потом еще
А называется это действие миграцией с одной схемы базы данных на другую схему.

Для баз данных это очень неэффективная процедура, требует полного перелопачивания всей таблицы. Если у вас постоянно возникает такая необходимость то вы неправильно выбрали инструмент. Например в NoSQL можно не иметь фиксированной схемы, примерно как в объектах питона, в которых вы в любой объект в любое время можете добавить или удалить любые свойство или метод.
Но конечно и у этого подхода есть недостатки.
lubocka
Спасибо всем за ответы

doza_and
Если у вас постоянно возникает такая необходимость то вы неправильно выбрали инструмент.
Такая потребность однозначно будет возникать.
Пока в процессе изучения могу поменять инструмент, но на какой лучше и попроще?

doza_and
lubocka
но на какой лучше и попроще?
Что будет проще определяется вашими потребностями. У новичков в большинстве случаев базы данных вообще не требуются. Опишите вашу задачу, тогда можно будет дать совет.

Из простеньких NoSQL
https://tinydb.readthedocs.io/
http://labs.codernity.com/codernitydb/
https://www.mongodb.com/

Посмотрите для расширения кругозора, но надо 10 раз подумать прежде чем выбрать формат базы или файлового хранилища.
lubocka
Хорошо, я бухгалтер, веду учет студентов. Начисление стипендии, расчет оплаты за обучение и оплаты за общежитие. Итого 3 задачи.
Ранее вела в 1с, сама видоизменила конфигурацию под себя. Все устраивало. Но в Украине запрет на 1с и с Нового года 2018 требование удалить даже имеющую платформу.
Сейчас оплату я перевела на Ексель, чтоб не нарушать закон. Аccess не нравится, даже не предлагайте.

Денег не дают на покупку другой платформы, а даже если дадут неизвестно что покупать.
Самой программирование интересно.
Pyhton нравится, времени достаточно и для изучения и для написания. Никто меня в шею не гонит и не заставляет.

Ну вот. Примерно описала самую основную задачу.
Rodegast
Писать что-то своё даже не пытайся, ибо быстро не получится. Используй уже готовые платфлрмы например http://penta.by/
lubocka
Rodegast спасибо за поддержку

Распаковала, и что-то мне не очень.
Мне все же хочется свое. И хочется видеть и пощупать все с самого начала.
Надо же ставить задачи. И поймите меня правильно, моя работа никак не страдает и страдать не будет.
Rodegast
Вариантов много, но все они до 1С не дотягивают. Посмотри форум на 1С++, там много подобных проектов.
http://www.1cpp.ru/forum/YaBB.pl?board=qt1l
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB