CREATE FOREIGN TABLE
Синтаксис
CREATE FOREIGN TABLE [ IF NOT EXISTS ] table_name ( [
имя_колонки тип_данных [ OPTIONS ( параметр 'значение' [, ... ] ) ] [ COLLATE правило_сортировки ] [ ограничение_колонки [ ... ] ]
[, ... ]
] )
SERVER имя_сервера
[ OPTIONS ( параметр 'значение' [, ... ] ) ]
Здесь ограничение_колонки:
[ CONSTRAINT имя_ограничения ]
{ NOT NULL |
NULL |
DEFAULT выражение_по_умолчанию }
Описание
CREATE FOREIGN TABLE создаёт новую стороннюю таблицу в текущей базе данных. Владельцем таблицы будет пользователь, выполнивший эту команду.
Если указано имя схемы (например, CREATE FOREIGN TABLE myschema.mytable ...), таблица будет создана в этой схеме. В противном случае она создаётся в текущей схеме. Имя сторонней таблицы должно отличаться от имён других сторонних и обычных таблиц, последовательностей, индексов, представлений и материализованных представлений, существующих в этой схеме.
CREATE FOREIGN TABLE также автоматически создаёт составной тип данных, соответствующий одной строке сторонней таблицы. Таким образом, имя сторонней таблицы не может совпадать с именем существующего типа в этой же схеме.
Чтобы создать стороннюю таблицу, необходимо иметь право USAGE для стороннего сервера, а также право USAGE для всех типов колонок, содержащихся в таблице.
Параметры
- IF NOT EXISTS
Не считать ошибкой, если отношение с таким именем уже существует. В этом случае будет выдано замечание. Заметьте, что нет никакой гарантии, что существующее отношение как-то соотносится с тем, которое могло бы быть создано.
- table_name
Имя (возможно, дополненное схемой) создаваемой таблицы.
- имя_колонки
Имя колонки, создаваемой в новой таблице.
- тип_данных
Тип данных колонки (может включать определение массива с этим типом). За дополнительными сведениями о типах данных, которые поддерживает PostgreSQL, обратитесь к Главе 8.
- NOT NULL
Данная колонка не принимает значения NULL.
- NULL
Данная колонка может содержать значения NULL (по умолчанию).
Это предложение предназначено только для совместимости с нестандартными базами данных SQL. Использовать его в новых приложениях не рекомендуется.
- DEFAULT выражение_по_умолчанию
Предложение DEFAULT задаёт значение по умолчанию для колонки, в определении которой оно присутствует. Значение задаётся выражением без переменных (подзапросы и перекрёстные ссылки на другие колонки текущей таблицы в нём не допускаются). Тип данных выражения, задающего значение по умолчанию, должен соответствовать типу данных колонки.
Это выражение будет использоваться во всех операциях добавления данных, в которых не задаётся значение данной колонки. Если значение по умолчанию не определено, таким значением будет NULL.
- имя_сервера
Имя существующего стороннего сервера, предоставляющего данную стороннюю таблицу. О создании сервера можно узнать в CREATE SERVER.
- OPTIONS ( параметр 'значение' [, ...] )
Параметры, связываемые с новой сторонней таблицей или одной из её колонок. Допустимые имена и значения параметров у каждой обёртки сторонних данных свои; они контролируются функцией проверки, связанной с этой обёрткой. Имена параметров не должны повторяться (хотя параметр таблицы и параметр колонки вполне могут иметь одно имя).
Примеры
Создание сторонней таблицы films, которая будет доступна через сервер film_server:
CREATE FOREIGN TABLE films ( code char(5) NOT NULL, title varchar(40) NOT NULL, did integer NOT NULL, date_prod date, kind varchar(10), len interval hour to minute ) SERVER film_server;
Совместимость
Команда CREATE FOREIGN TABLE в основном соответствует стандарту SQL; однако, как и CREATE TABLE, она допускает ограничения NULL и таблицы с нулём колонок. Возможность задавать значение по умолчанию также является расширением PostgreSQL.
Пред. | Начало | След. |
CREATE FOREIGN DATA WRAPPER | Уровень выше | CREATE FUNCTION |