Как сделать множественный insert одной записью?

145
27 августа 2021, 17:20

Есть такой запрос:

self.cursor.execute('''INSERT INTO items (res_id, log_id, link, title, content, n_date, nd_date, s_date, not_date)
                       VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s)''',
                       ( res_id,
                         log_id,
                         str(resource_link),
                         str(item_title),
                         str(item_content),
                         str(n_date),
                         nd_date,
                         s_date,
                         not_date
                       )
                                )

Как можно сделать чтобы этот запрос добавлял новости не по одной новости за раз,а за один раз 100 новостей?

Я смотрел такой пример множественного insert в интернете:

INSERT INTO MyTable
  ( Column1, Column2, Column3 )
VALUES
  ('John', 123, 'Lloyds Office'), 
  ('Jane', 124, 'Lloyds Office'), 
  ('Billy', 125, 'London Office'),
  ('Miranda', 126, 'Bristol Office');

Но в этом случае надо указать VALUES столько раз,сколько надо.

Answer 1

Воспользуйтесь “executemany()”:

sql = '''
INSERT INTO MyTable
  ( Column1, Column2, Column3 )
VALUES
  (%s, %s, %s)
'''
records = [
  ('John', 123, 'Lloyds Office'), 
  ('Jane', 124, 'Lloyds Office'), 
  ('Billy', 125, 'London Office'),
  ('Miranda', 126, 'Bristol Office')]
cursor.executemany(sql, records)
READ ALSO
Удалить часть массива по значение

Удалить часть массива по значение

имеется переменная в которой содержаться массив содержащий более 15к значенийНужно удалить из массива элементы содержащие в себе значение...

113
Обновление формы с файлом в Symfony

Обновление формы с файлом в Symfony

Доброго времени суток!

117
Скачать картинку по url - PHP

Скачать картинку по url - PHP

Есть код который работает на других сайтах, а на этом работать не хочет

240
Получить числа и буквы

Получить числа и буквы

Есть текст (2ab(2ba)a), как получить 2ab и 2ba, если там могут быть другие числа и буквы?

178