Безопасно ли запускать «создать таблицу ...» несколько раз? - PullRequest
2 голосов
/ 11 сентября 2010

У меня есть синтаксический анализатор, который анализирует XML-файл в базе данных SQLite, и текущая реализация генерирует 'create table xyz ...', даже если таблица уже существует.

  • Это нормально?Я имею в виду, это нормально для запуска «создать таблицу», даже если таблица существует в БД?
  • Если нет, есть ли простой способ проверить имена таблиц (и их содержимое), которые есть в базе данных SQLite?

Ответы [ 3 ]

4 голосов
/ 11 сентября 2010

Что вы ищете, это СОЗДАТЬ ТАБЛИЦУ, ЕСЛИ НЕ СУЩЕСТВУЕТ и запись FAQ Как мне перечислить все таблицы / индексы, содержащиеся в базе данных SQLite .

Создание таблицы без опции «ЕСЛИ НЕ СУЩЕСТВУЕТ» приведет к ошибке.

1 голос
/ 11 сентября 2010

В SQLite есть предложение «ЕСЛИ НЕ СУЩЕСТВУЕТ», так что вы можете добавить «CREATE TABLE» в базу данных, и он будет игнорировать его, если он уже существует. Например:

СОЗДАТЬ ТАБЛИЦУ, ЕСЛИ НЕ СУЩЕСТВУЕТ mytable (id INTEGER);

URL к документации по этому адресу: http://www.sqlite.org/lang_createtable.html

1 голос
/ 11 сентября 2010

Вы можете DROP TABLE до CREATE TABLE, вы можете защитить DROP TABLE тех, кто не существует, тогда вам не нужно проверять TABLE существование до DROP.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...