Автозаполнение бд sql из списка, минуя колонку с автоинкрементом

Всем привет, столкнулся с таким вопросом по заполнению таблицы SQL, при помощи языка Python. Как известно данные в таблицу из списка можно занести таким вот способом.

#Добавление набора данных
surnames = ["Ivanov", "Petrov", "Sergeeva"]
names = ["Denis", "Roman", "Nastya"]
phones = ["123", "345","678"]
ages = [20,25,27]
for i in range(len(surnames)):
    cursor.execute("""INSERT INTO users_base
                         VALUES ('%s','%s','%s','%d')
                         """ % (surnames[i], names[i], phones[i],ages[i]))
conn.commit()

Я хочу реализовать, чтобы эти данные заносились со сдвигом в один столбец, чтобы заполнение данными шло со второго столбца, а в первый столбец автоматически генерировался идентификатор . Значение переменной i занести нельзя, так как при повторном запуске произойдет ошибка. Как генерировать идентификатор я знаю, у меня вопрос, как сделать, чтобы данные из списка заносились начиная не с первого, а со второго столбца. Заранее спасибо за ответы.

Ожидаемый результат:
Id    Surname   Name   Phone   Age
---   -------   ----   -----   ---
      Ivanov    Denis  123     20 
      Petrov    Roman  345     25
      Sergeeva  Nastya 678     27

P.S. Вариант с указанием названий столбцов я использовать не хочу, так как столбцов достаточно много(более 30). Таблица, которую я привел в вопросе - это упрощенный образец.


Ответы (1 шт):

Автор решения: strawdog

Есть пара вариантов решений:

  1. явно указать названия колонок, куда вы заносите данные:
INSERT INTO `table_name` (column1, column2, column3, ...) VALUES (value1, value2, value3, ...);
  1. Указать значение DEFAULT для колонки, данные которой вы менять не хотите (например, для индекса с автоинкреиентом):
INSERT INTO `table_name` VALUES (DEFAULT, ?, ?, ?);
→ Ссылка