SAMMANFATTNING: Den här artikeln behandlar uttalandena ALTER DATABASE, RENAME DATABASE och DROP DATABASE samt hur man kopierar en databas med CREATE DATABASE WITH TEMPLATE-angivelsen.
1. ALTER DATABASE-anvisningar
a. Ändra databasens ägare
b. Konfigurera malldatabasen
c. Begränsa nya anslutningar för en specifik databas
d. Begränsa anslutningsgränsen för en specifik databas
e. Ändra standardtabellutrymme för databasen
2. RENAME DATABASE-anvisningar
3. DROP DATABASE-anvisningar
4. Kopiera databasstruktur och data
Det här inlägget tar upp några av de tillgängliga kommandona för hantering av PostgreSQL-databaser från PSQL-prompten. Vi kommer att gå igenom metoder för att ändra, byta namn, ta bort och kopiera en databas.
Låt oss sammanfatta några grundläggande PostgreSQL-kommandon:
1. Syntax för skapande av databaser:
CREATE DATABASE name user_name ] template ] encoding ] lc_collate ] lc_ctype ] tablespace ] connlimit ] ]
2. För att få en lista över databaser i det aktuella klustret:
a. \l+
b. select * from pg_database ;
- ALTER database statements
- Ändra databasens ägare
- Syntax
- Exempel
- Inställning av malldatabasen
- Syntax
- Exempel
- Begränsning av nya anslutningar för en specifik databas
- Syntax
- Exempel
- Begränsning av anslutningsgränsen för en specifik databas.
- Syntax
- Exempel
- Byte av standardtabellutrymme för databasen
- Syntax
- Exempel
- RENAME databasinstruktioner
- Syntax
- Exempel
- DROP Database statements
- Syntax
- Exempel
ALTER database statements
ALTER database statements kan användas för att ändra befintliga attribut för måldatabasen.
Ändra databasens ägare
För att ändra databasens ägare måste den anslutna användaren vara databasens ägare och även vara en direkt eller indirekt medlem i den nya ägarrollen, och den anslutna användaren måste ha privilegiet CREATEDB.
Syntax
ALTER DATABASE <database_name> OWNER TO <new_owner>;
Exempel
ALTER DATABASE test OWNER TO user;
Inställning av malldatabasen
Som standard har vi bara två malldatabaser närvarande i ett kluster – template0 och template1. Andra databaser kan inte användas som mall som standard. Om du behöver skapa en anpassad databasmall för din miljö kan du använda det här alternativet.
Syntax
ALTER DATABASE <database_name> WITH IS_TEMPLATE = true;
Exempel
ALTER DATABASE test WITH IS_TEMPLATE = true;
Begränsning av nya anslutningar för en specifik databas
Det här alternativet är mycket användbart för att upprätthålla databasen. Du kan begränsa nya anslutningar till en specifik databas under fönstret för databasunderhåll. För att aktivera det här alternativet är ingen användare ansluten till måldatabasen.
Syntax
ALTER DATABASE <database_name> WITH ALLOW_CONNECTIONS = false;
Exempel
ALTER DATABASE test2 WITH ALLOW_CONNECTIONS = false;
Begränsning av anslutningsgränsen för en specifik databas.
För säkerhet och optimal prestanda kan du begränsa antalet anslutningar som kan ansluta till måldatabasen. Som standard är värdet för den här parametern obegränsat, dvs. -1, för varje databas.
Syntax
ALTER DATABASE <database_name> WITH CONNECTION LIMIT <max_number_of_connections>;
Exempel
ALTER DATABASE test2 WITH CONNECTION LIMIT 10;
Byte av standardtabellutrymme för databasen
Du kan fysiskt flytta objekt för standardtabellutrymme, t.ex. tabeller och index, från standardtabellutrymmet till ett nytt anpassat tabellutrymme. Det nya standardtabellutrymmet måste vara tomt för den här databasen och ingen kan vara ansluten till databasen under den här aktiviteten.
Anmärkningar: Ägaren till databasen eller en superanvändare måste göra den här ändringen och användaren måste ha CREATE-privilegier för det nya tabellutrymmet.
Syntax
ALTER DATABASE <database_name> SET TABLESPACE <custom_tablespace_name>;
Exempel
ALTER DATABASE test SET TABLESPACE custom_tblspc;
RENAME databasinstruktioner
Du kan ändra den aktuella databasens namn med hjälp av RENAME. Du kan dock inte byta namn på databasen medan den är tillgänglig för andra anslutningar.
Notera: Ägaren till databasen eller superanvändaren måste göra den här ändringen och användaren måste ha CREATEDB-privilegier.
Syntax
ALTER DATABASE <old_database_name> RENAME TO <new_database_name>;
Exempel
ALTER DATABASE test RENAME TO test123;
DROP Database statements
Du kan DROPa måldatabasen. Detta tar bort katalogposterna för databasen och raderar katalogen som innehåller data. Det kan endast utföras av databasägaren. Det kan inte heller exekveras medan du eller någon annan är ansluten till måldatabasen.
Notera: DROP DATABASE kan inte ångras.
Syntax
DROP DATABASE <database_name>;
Exempel
DROP DATABASE test2;