Имеются ли условные операторы IF NOT EXIST для CREATE TABLE?

300
04 марта 2017, 05:59

Если нет возможности в FireBird 2.5 добавить констуркцию подобно MySQL то как правильнее проверять наличие создаваемой таблицы.

Вопрос касается динамического создания таблиц скриптом.

Answer 1

Имеются. Нужно проверять наличие записи в системной таблице RDB$RELATIONS. Но есть нюанс! IF работает только в PSQL, но в нем нельзя делать CREATE. Поэтому приходится дважды оборачивать. IF в EXECUTE BLOCK, а CREATE в EXECUTE STATEMENT. Вот пример:

EXECUTE BLOCK
AS
BEGIN
  IF (NOT EXISTS(SELECT * FROM RDB$RELATIONS WHERE RDB$RELATION_NAME = 'MY_TABLE')) THEN
    EXECUTE STATEMENT '
CREATE TABLE MY_TABLE (
  ID INTEGER NOT NULL,
  NAME VARCHAR(30) NOT NULL
)';
END
READ ALSO
Как обрабатывать полученные данные

Как обрабатывать полученные данные

Допустим есть данные полученные через GET

264
Почему не работает meta_query?

Почему не работает meta_query?

Есть вот такой код:

306
Пустое сообщение с формы обратной связи PHP

Пустое сообщение с формы обратной связи PHP

Прошу помощи, приходят сообщения, в которых только такое содержание: Name:

262
PHP Двойные и одинарные кавычки

PHP Двойные и одинарные кавычки

Всем доброго дняСовсем запутался в кавычках:

344