Python вставляет только одну строку в БД SQLite - PullRequest
0 голосов
/ 18 марта 2019

Почему мой код вставляет только одну строку?

thewholeenchilada = ("SELECT SUBSTR(email, (SELECT INSTR(email,'@'))) AS org, SUM(count) as count FROM Em GROUP BY org ORDER BY count DESC")

for salida in cur.execute(thewholeenchilada):
    cur.execute('''INSERT INTO Counts (org, count)
                VALUES (?, ?)''', (salida[0],row[1]))

    print((str(salida[0]), salida[1]))
    conn.commit()

1 Ответ

0 голосов
/ 18 марта 2019

Избегайте цикла и выполните один запрос INSERT INTO ... SELECT. Прямо сейчас вы повторно используете один и тот же курсор снаружи и внутри цикла, вызывая проблемы с обработкой. Либо используйте два разных курсора, либо эффективно объединяйте и выполняйте запрос действия запуска механизма базы данных:

sql = '''INSERT INTO Counts (org, [count])
         SELECT SUBSTR(email, INSTR(email, '@')+1) AS org, 
                SUM(count) as [count]
         FROM Em 
         GROUP BY org 
         ORDER BY count DESC
      '''

cur.execute(sql)
conn.commit()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...