#python
Вопрос:
У меня есть таблицы в базе данных: клиенты [] и учетные записи []. В базе данных есть таблица учетных записей. В этой таблице есть внешний ключ (поле владельца), который должен указывать на конкретного клиента (отношения customers.id = учетные записи.владелец).
Я хотел бы сохранить учетные записи из списка в базе данных таким образом, чтобы владельцами следующих учетных записей были следующие клиенты из предыдущего списка (связь должна быть сохранена), то есть: (связь customers.id = учетные записи.владелец). Вот мой код:
with sqlite3.connect(DATABASE) as connection:
cursor = connection.cursor()
results = cursor.execute('select id from customers')
result = results.fetchone()
cursor_2 = connection.cursor()
cursor_2.row_factory=sqlite3.Row
i = 0
while result:
result2 = cursor_2.execute('insert into accounts (number, owner) values (?,?)', (accounts[i], result[0]))
result = results.fetchone()
i = 1
for row in cursor_2.execute(SQL_SELECT):
print(dict(row))
К сожалению, когда я выбираю результат, я получаю сообщение об ошибке:
IndexError Traceback (most recent call last)
<ipython-input-12-69ff9849bb7a> in <module>
66 i = 0
67 while result:
---> 68 result2 = cursor_2.execute('insert into accounts (number, owner) values (?,?)', (accounts[i], result[0]))
69 result = results.fetchone()
70 i = 2
IndexError: **list index out of range**
У меня есть просьба указать, что здесь не так
Комментарии:
1. похоже
accounts
, пусто2. таблица счетов содержит 100 записей, как и таблица клиентов
3. прежде
while result:
чем СДЕЛАТЬprint(len(accounts))
— что ты получишь?4. У меня 100 записей