Establecer el esquema actual

Para cambiar el esquema actual, utilice el comando SET SCHEMA.

mydb.admin(admin)=> SET SCHEMA schema_one;
SET SCHEMA
mydb.schema_one(admin)=>

Si utiliza el comando dentro de un bloque de transacción o dentro del cuerpo de un procedimiento almacenado, el esquema permanece en vigor para el resto del bloque de transacción o procedimiento a menos que emita otro comando SET SCHEMA para cambiar el esquema actual de nuevo.

Puede utilizar la función current_tx_schema incorporada para devolver el valor del esquema de transacción actual. La función current_tx_schema devuelve un valor nulo si no ha utilizado el comando SET SCHEMA dentro del bloque de transacción explícito o el cuerpo del procedimiento. A continuación, tiene una serie de comandos que le muestran el comportamiento de los esquemas dentro de una transacción explícita:

MYDB.RED(ADMIN)=> BEGIN;
BEGIN

MYDB.RED(ADMIN)=> select current_schema;
CURRENT_SCHEMA
----------------
RED
(1 row)

MYDB.RED(ADMIN)=> select current_tx_schema;
CURRENT_TX_SCHEMA
-------------------
(1 row)

MYDB.RED(ADMIN)=> set schema blue;
SET SCHEMA

MYDB.RED(ADMIN)=> select current_tx_schema;
CURRENT_TX_SCHEMA
-------------------
BLUE
(1 row)
...

Como se muestra en los comandos de ejemplo, la sesión retiene su esquema de RED aunque el esquema cambie dentro de la transacción explícita. Puede utilizar la función current_tx_schema para mostrar el esquema actual para el bloque de transacción o el cuerpo del procedimiento.