Уведомления

Группа в Telegram: @pythonsu

#1 Сен. 2, 2017 22:40:51

lubocka
Зарегистрирован: 2017-06-11
Сообщения: 40
Репутация: +  0  -
Профиль   Отправить e-mail  

Обновление таблиц в БД

Осваиваю sqlite3
вот мне стало интересно такая вещь.
в начале я создаю таблицы, потом они заполняются. Со временем надо добавить столбец, потом еще, через некоторое время еще. А какой-то за ненадобностью устаревает и его надо удалить.

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

Офлайн

#2 Сен. 3, 2017 00:46:06

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 10015
Репутация: +  857  -
Профиль   Отправить e-mail  

Обновление таблиц в БД

В SQLite такой фичи нет. Там многие команды, обычные для СУБД, не реализованы, а некоторые реализованы только наполовину. Если возьмёшь MySQL, то там можно.
http://www.sqlite.org/lang_altertable.html



Офлайн

#3 Сен. 3, 2017 08:37:32

vic57
Зарегистрирован: 2015-07-07
Сообщения: 913
Репутация: +  127  -
Профиль  

Обновление таблиц в БД

 --добавление столбца
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;

Офлайн

#4 Сен. 3, 2017 08:39:44

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  253  -
Профиль   Отправить e-mail  

Обновление таблиц в БД

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

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



Офлайн

#5 Сен. 3, 2017 13:48:22

lubocka
Зарегистрирован: 2017-06-11
Сообщения: 40
Репутация: +  0  -
Профиль   Отправить e-mail  

Обновление таблиц в БД

Спасибо всем за ответы

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

Офлайн

#6 Сен. 3, 2017 14:43:23

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  253  -
Профиль   Отправить e-mail  

Обновление таблиц в БД

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

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

Посмотрите для расширения кругозора, но надо 10 раз подумать прежде чем выбрать формат базы или файлового хранилища.



Отредактировано doza_and (Сен. 3, 2017 14:44:14)

Офлайн

#7 Сен. 3, 2017 15:31:19

lubocka
Зарегистрирован: 2017-06-11
Сообщения: 40
Репутация: +  0  -
Профиль   Отправить e-mail  

Обновление таблиц в БД

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

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

Ну вот. Примерно описала самую основную задачу.

Офлайн

#8 Сен. 3, 2017 16:06:52

Rodegast
От: Пятигорск
Зарегистрирован: 2007-12-28
Сообщения: 2843
Репутация: +  186  -
Профиль   Отправить e-mail  

Обновление таблиц в БД

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



С дураками и сектантами не спорю, истину не ищу.
Ели кому-то правда не нравится, то заранее извиняюсь.

Офлайн

#9 Сен. 3, 2017 16:35:01

lubocka
Зарегистрирован: 2017-06-11
Сообщения: 40
Репутация: +  0  -
Профиль   Отправить e-mail  

Обновление таблиц в БД

Rodegast спасибо за поддержку

Распаковала, и что-то мне не очень.
Мне все же хочется свое. И хочется видеть и пощупать все с самого начала.
Надо же ставить задачи. И поймите меня правильно, моя работа никак не страдает и страдать не будет.

Офлайн

#10 Сен. 3, 2017 16:58:10

Rodegast
От: Пятигорск
Зарегистрирован: 2007-12-28
Сообщения: 2843
Репутация: +  186  -
Профиль   Отправить e-mail  

Обновление таблиц в БД

Вариантов много, но все они до 1С не дотягивают. Посмотри форум на 1С++, там много подобных проектов.
http://www.1cpp.ru/forum/YaBB.pl?board=qt1l



С дураками и сектантами не спорю, истину не ищу.
Ели кому-то правда не нравится, то заранее извиняюсь.

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version