Я должен выполнить в Python SQL-запрос, который добавляет новый столбец в sqlite3.
Проблема состоит в том, что иногда это уже существует. Таким образом до выполнения запроса я должен проверить, существует ли столбец уже.
Если это сделает, то я не выполню запрос.
Существует ли путь в sqlite, чтобы сделать это? Или я должен сделать его через блок try-catch в коде Python?
Большое спасибо заранее!
Вы можете получить список столбцов для таблицы с помощью следующего оператора:
PRAGMA table_info('table_name');
Дополнительные сведения о командах прагмы доступны на веб-сайте sqlite
IMO this
conn = sqlite3.connect(':memory:')
c = conn.cursor()
try:
c.execute('ALTER TABLE mytable ADD COLUMN newcolumn;')
except:
pass # handle the error
c.close()
- лучший выбор, чем создание специальных запросов .
Вы можете заключить приведенный выше код в функцию AddColumn (курсор, таблица, столбец), чтобы можно было использовать его повторно,
плюс это сделает код более читабельным.