Hallo,
nach einem versehentlichen dropen der Systemschemata
pg_temp_1
pg_toast_temp_1
sind diese auch nicht mehr als user postgres mit:
CREATE SCHEMA IF NOT EXISTS pg_temp_1
AUTHORIZATION postgres;
wieder herzustellen
=>
ERROR: FEHLER: inakzeptabler Schemaname »pg_temp_1«
DETAIL: Der Präfix »pg_« ist für Systemschemas reserviert.
wie ist denn in diesem Falle der empfohlene workaround?
bzw. würde postgres diese Schemata wieder anlegen, wenn z.B. ein Toast-Vorgang angetriggert wird?
Meine erste Idee war: Backup einspielen
Aber vielleicht hilft Dir das ja:
postgres@[local]:postgres# SELECT * from pg_namespace where nspname like ‘pg_%’;
oid | nspname | nspowner | nspacl
-----±-----------±---------±-----------------------------------
99 | pg_toast | 10 |
11 | pg_catalog | 10 | {postgres=UC/postgres,=U/postgres}
(2 Zeilen)
Zeit: 0,210 ms
postgres@[local]:postgres# create temp table test (id int);
CREATE TABLE
Zeit: 0,521 ms
postgres@[local]:postgres# SELECT * from pg_namespace where nspname like ‘pg_%’;
oid | nspname | nspowner | nspacl
-------±----------------±---------±-----------------------------------
99 | pg_toast | 10 |
11 | pg_catalog | 10 | {postgres=UC/postgres,=U/postgres}
65972 | pg_temp_3 | 10 |
65973 | pg_toast_temp_3 | 10 |
(4 Zeilen)
Zeit: 0,198 ms
postgres@[local]:postgres# rollback ;
ROLLBACK
Zeit: 0,227 ms
postgres@[local]:postgres# SELECT * from pg_namespace where nspname like ‘pg_%’;
oid | nspname | nspowner | nspacl
-----±-----------±---------±-----------------------------------
99 | pg_toast | 10 |
11 | pg_catalog | 10 | {postgres=UC/postgres,=U/postgres}
(2 Zeilen)
Hallo und vielen Dank für Euren Input.
Ich war mir nicht sicher ob die beim CREATE DATABASE gleich initial miterstellten Schemata pg_temp_1/pg_toast_temp_1 zwingend erforderlich sind.
Aber das scheint dann ja nicht der Fall zu sein.