ALTER TABLE Sqlite: как проверить, существует ли столбец, прежде изменяют таблицу?

Я должен выполнить в Python SQL-запрос, который добавляет новый столбец в sqlite3.

Проблема состоит в том, что иногда это уже существует. Таким образом до выполнения запроса я должен проверить, существует ли столбец уже.

Если это сделает, то я не выполню запрос.

Существует ли путь в sqlite, чтобы сделать это? Или я должен сделать его через блок try-catch в коде Python?

Большое спасибо заранее!

6
задан Jon Winstanley 1 March 2010 в 09:08
поделиться

2 ответа

Вы можете получить список столбцов для таблицы с помощью следующего оператора:

PRAGMA table_info('table_name');

Дополнительные сведения о командах прагмы доступны на веб-сайте sqlite

14
ответ дан 8 December 2019 в 03:52
поделиться

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 (курсор, таблица, столбец), чтобы можно было использовать его повторно,
плюс это сделает код более читабельным.

13
ответ дан 8 December 2019 в 03:52
поделиться
Другие вопросы по тегам:

Похожие вопросы: