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