Форум программистов, компьютерный форум, киберфорум
Python: Web
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/18: Рейтинг темы: голосов - 18, средняя оценка - 4.50
0 / 0 / 1
Регистрация: 10.03.2016
Сообщений: 17
1

Добавление данных в таблицу БД в цикле for. sqlalchemy PYTHON

09.12.2016, 10:49. Показов 3628. Ответов 2

Author24 — интернет-сервис помощи студентам
Помогите с кодом Python. Нужно скопировать записи с БД с заменой одного значения.

Есть модель БД:
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
lass Group(db.Model):
    """ Group model """
    __tablename__ = "group"
 
    id = db.Column(db.Integer, primary_key=True)
 
    project_id = db.Column(db.Integer, db.ForeignKey("project.id"), nullable=True)
    project = db.relationship("Project", foreign_keys=[project_id])
 
    active = db.Column(db.Boolean, default=True, index=True)
 
    name = db.Column(db.String(64), index=True)
 
    permissions = db.relationship(
        "Permission",
        secondary=group_has_permission,
        lazy="dynamic",
        backref=db.backref("groups", lazy="dynamic")
    )
 
    manager_id = db.Column(db.Integer, db.ForeignKey('user.id'))
    manager = db.relationship('User', backref='managed_groups'
Есть код:
Python
1
2
3
4
5
6
7
8
groups = Group.query.filter(Group.project_id ==    
current_project.id).all()
for group in groups:
    copy_groups = Group()
    copy_groups.project_id = copy_project.id
    copy_groups.name = group.name
    db.session.add(copy_groups)
db.session.commit()
Но при запуске кода выбивает ошибку:
sqlalchemy.exc.IntegrityError
sqlalchemy.exc.IntegrityError: (pymysql.err.IntegrityError) (1062, "Duplicate entry 'owners-60' for key 'group_project_id_index'") [SQL: 'INSERT INTO `group` (project_id, active, name, manager_id) VALUES (%(project_id)s, %(active)s, %(name)s, %(manager_id)s)'] [parameters: {'manager_id': None, 'project_id': 60, 'name': 'owners', 'active': 1}]


Пробовал изменить код:

Python
1
2
3
4
5
6
7
8
groups = Group.query.filter(Group.project_id ==    
current_project.id).all()
for group in groups:
    copy_groups = Group()
    copy_groups.project_id = copy_project.id
    copy_groups.name = group.name
    db.session.add(copy_groups)
    db.session.commit()
Но все равно дает ошибку.

Помогите пожалуйста, как добавить каждую запись с groups в базу данных
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
09.12.2016, 10:49
Ответы с готовыми решениями:

Выбор данных из полей со списком, занесение этих данных в список и добавление данных в таблицу
Подскажите пожалуйста, как что то подобное сделать в Access или посоветуйте хорошую литературу где...

insert добавление данных в цикле
на заданном промежутке времен (ДатаНачала = 01.01.2013 и ДатаОкончания = 15.04.2013) и начального...

Добавление в массив данных в цикле
Здравствуйте, уважаемые! С Labview познакомился недавно. За пол дня не смог сделать задачу, которую...

Python sqlalchemy отфильтровать записи в relationship
Есть две таблицы Group и User. Юзеры могут находится в нескольких группах одновременно. ...

Нужен программист Django или Python / Flask / SqlAlchemy
Команда разработчиков школы программистов, г. Москва, м. Медведково и г. Мытищи МО, приглашает...

2
2740 / 2339 / 620
Регистрация: 19.03.2012
Сообщений: 8,830
09.12.2016, 10:59 2
Цитата Сообщение от sashkouuu Посмотреть сообщение
Помогите с кодом Python. Нужно скопировать записи с БД с заменой одного значения.
Куда скопировать? Одного это какого?
0
0 / 0 / 1
Регистрация: 10.03.2016
Сообщений: 17
09.12.2016, 11:09  [ТС] 3
Цитата Сообщение от alex925 Посмотреть сообщение
Куда скопировать? Одного это какого?
Нужно скопировать определенные данные Groups (db.Model) которые находятся в groups. К примеру в groups есть 4 записи, мне нужно для каждой записи в groups скопировать ее name и в project_id записать id номер copy_project.id и после этого все эти четыре записи с новым name b project_id записать в Groups (db.Model).

Если я использую
Python
1
2
            db.session.add(copy_groups)
        db.session.commit()
то добавляется только одна последняя запись, а мне нужно что бы добавились все записи с groups, т.е. 4 записи.

Если использую
Python
1
2
db.session.add(copy_groups)
db.session.commit()
то выдает ошибку.
0
09.12.2016, 11:09
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
09.12.2016, 11:09
Помогаю со студенческими работами здесь

Добавление данных в таблицу базы данных из поля ввода entry
Необходимо из поля ввода entry взять данные и вставить их в таблицу. Я использовал метод get() и...

Добавление данных через форму в таблицу базы данных MS SQL
Здравствуйте! Я делаю форму для добавления записи в таблицу базы данных, созданную в MS SQL...

Сравнение данных в разных таблицах по двум критериям и добавление не совпавших данных в первую таблицу
Добрый день форумчане! Надеюсь на вашу помощь или совет. Я новичок в деле написания макросов....

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

Добавление данных в таблицу с использованием данных из связанной таблицы
Добрый день. Имеется база данных из двух таблиц. Структура таблиц строится через Entity...

Добавление данных в таблицу Excel после существующих данных
Здравствуйте уважаемые форумчане! Нужна помощь, помогите кто знает. Сильно не ругайте я еще очень,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru