с Firebird 2.5 ваша версия: любая

RECREATE TABLE

Версии сервера

2.53.04.05.06.0
ДаДаДаДаДа

Доступно в

DSQL

Формат

RECREATE [GLOBAL TEMPORARY] TABLE tablename
  [EXTERNAL [FILE] 'filespec']
  (<col_def> [, <col_def> | <tconstraint> ...])
  [ON COMMIT {DELETE | PRESERVE} ROWS]
  [SQL SECURITY {DEFINER | INVOKER}]

Описание

Оператор RECREATE TABLE создаёт новую таблицу или пересоздаёт существующую. Если таблица с таким именем уже есть, сервер попытается удалить её и создать новую. Фактически это последовательность DROP TABLE + CREATE TABLE одним оператором: не нужно заранее проверять существование объекта. Удобно в установочных и обновляющих скриптах, когда структуру надо гарантированно привести к эталонному виду.

Оператор не выполнится, если у существующей таблицы есть зависимости (ограничения, представления, триггеры, PSQL-модули, ссылающиеся на неё): удаление старой будет отвергнуто и новая создана не будет.

В отличие от ALTER TABLE, изменяющего существующую структуру по частям, RECREATE TABLE пересоздаёт таблицу целиком по определению из оператора, а все данные старой таблицы безвозвратно уничтожаются. Для таблиц с ценными данными используйте ALTER TABLE (либо предваряйте оператор резервной копией через gbak).

По синтаксису повторяет CREATE TABLE, включая определения столбцов и ограничений, внешние таблицы (EXTERNAL FILE), глобальные временные таблицы (GLOBAL TEMPORARY) и контекст безопасности (SQL SECURITY).

Пример

RECREATE TABLE EMPLOYEES
(
  ID          INTEGER NOT NULL,
  LAST_NAME   VARCHAR(50) NOT NULL,
  FIRST_NAME  VARCHAR(50) NOT NULL,
  HIRED       DATE DEFAULT CURRENT_DATE,
  CONSTRAINT PK_EMPLOYEES PRIMARY KEY (ID)
);

См. также

CREATE TABLE, ALTER TABLE, DROP TABLE, gbak

Источник

Руководство по языку SQL СУБД Firebird 5.0 (sim1984 / ibase.ru, Public Documentation License)

Обсуждение