### Foreign servers - [ ] [CREATE SERVER](https://www.postgresql.org/docs/18/sql-createserver.html) - [ ] `IF NOT EXISTS` - [ ] `server_name` - [ ] `TYPE 'server_type'` - [ ] `VERSION 'server_version'` - [ ] `FOREIGN DATA WRAPPER fdw_name` - [ ] `OPTIONS ( option 'value' [, ... ] )` - [ ] [ALTER SERVER](https://www.postgresql.org/docs/18/sql-alterserver.html) - [ ] `VERSION 'new_version'` - [ ] `OPTIONS ( [ ADD | SET | DROP ] option ['value'] [, ... ] )` - [ ] `OWNER TO { new_owner | CURRENT_ROLE | CURRENT_USER | SESSION_USER }` - [ ] `RENAME TO new_name` - [ ] [DROP SERVER](https://www.postgresql.org/docs/18/sql-dropserver.html) - [ ] `IF EXISTS` - [ ] `name, ...` - [ ] `CASCADE | RESTRICT` - [ ] [IMPORT FOREIGN SCHEMA](https://www.postgresql.org/docs/18/sql-importforeignschema.html) - [ ] `remote_schema` - [ ] `{ LIMIT TO | EXCEPT } ( table_name [, ...] )` - [ ] `FROM SERVER server_name` - [ ] `INTO local_schema` - [ ] `OPTIONS ( option 'value' [, ... ] )` ### Foreign data wrappers - [ ] [CREATE FOREIGN DATA WRAPPER](https://www.postgresql.org/docs/18/sql-createforeigndatawrapper.html) - [ ] `name` - [ ] `HANDLER handler_function | NO HANDLER` - [ ] `VALIDATOR validator_function | NO VALIDATOR` - [ ] `OPTIONS ( option 'value' [, ... ] )` - [ ] [ALTER FOREIGN DATA WRAPPER](https://www.postgresql.org/docs/18/sql-alterforeigndatawrapper.html) - [ ] `name` - [ ] `HANDLER handler_function | NO HANDLER` - [ ] `VALIDATOR validator_function | NO VALIDATOR` - [ ] `OPTIONS ( [ ADD | SET | DROP ] option ['value'] [, ... ] )` - [ ] `OWNER TO { new_owner | CURRENT_ROLE | CURRENT_USER | SESSION_USER }` - [ ] `RENAME TO new_name` - [ ] [DROP FOREIGN DATA WRAPPER](https://www.postgresql.org/docs/18/sql-dropforeigndatawrapper.html) - [ ] `IF EXISTS` - [ ] `name, ...` - [ ] `CASCADE | RESTRICT` ### User mappings for foreign servers - [ ] [CREATE USER MAPPING](https://www.postgresql.org/docs/18/sql-createusermapping.html) - [ ] `IF NOT EXISTS` - [ ] `FOR { user_name | USER | CURRENT_ROLE | CURRENT_USER | PUBLIC }` - [ ] `SERVER server_name` - [ ] `OPTIONS ( option 'value' [ , ... ] )` - [ ] [ALTER USER MAPPING](https://www.postgresql.org/docs/18/sql-alterusermapping.html) - [ ] `FOR { user_name | USER | CURRENT_ROLE | CURRENT_USER | SESSION_USER | PUBLIC }` - [ ] `SERVER server_name` - [ ] `OPTIONS ( [ ADD | SET | DROP ] option ['value'] [, ... ] )` - [ ] [DROP USER MAPPING](https://www.postgresql.org/docs/18/sql-dropusermapping.html) - [ ] `IF EXISTS` - [ ] `FOR { user_name | USER | CURRENT_ROLE | CURRENT_USER | PUBLIC }` - [ ] `SERVER server_name`
Foreign servers
IF NOT EXISTSserver_nameTYPE 'server_type'VERSION 'server_version'FOREIGN DATA WRAPPER fdw_nameOPTIONS ( option 'value' [, ... ] )VERSION 'new_version'OPTIONS ( [ ADD | SET | DROP ] option ['value'] [, ... ] )OWNER TO { new_owner | CURRENT_ROLE | CURRENT_USER | SESSION_USER }RENAME TO new_nameIF EXISTSname, ...CASCADE | RESTRICTremote_schema{ LIMIT TO | EXCEPT } ( table_name [, ...] )FROM SERVER server_nameINTO local_schemaOPTIONS ( option 'value' [, ... ] )Foreign data wrappers
nameHANDLER handler_function | NO HANDLERVALIDATOR validator_function | NO VALIDATOROPTIONS ( option 'value' [, ... ] )nameHANDLER handler_function | NO HANDLERVALIDATOR validator_function | NO VALIDATOROPTIONS ( [ ADD | SET | DROP ] option ['value'] [, ... ] )OWNER TO { new_owner | CURRENT_ROLE | CURRENT_USER | SESSION_USER }RENAME TO new_nameIF EXISTSname, ...CASCADE | RESTRICTUser mappings for foreign servers
IF NOT EXISTSFOR { user_name | USER | CURRENT_ROLE | CURRENT_USER | PUBLIC }SERVER server_nameOPTIONS ( option 'value' [ , ... ] )FOR { user_name | USER | CURRENT_ROLE | CURRENT_USER | SESSION_USER | PUBLIC }SERVER server_nameOPTIONS ( [ ADD | SET | DROP ] option ['value'] [, ... ] )IF EXISTSFOR { user_name | USER | CURRENT_ROLE | CURRENT_USER | PUBLIC }SERVER server_name