sql >> Database >  >> RDS >> PostgreSQL

Maak een Postgres-database met behulp van een batchbestand met [template],[encoding],[owner] en een .sql-bestand

Het clientprogramma createdb ondersteunt niet al deze opties.
Maak een bestand db_create.sql :

CREATE DATABASE MydatAbseName
   WITH OWNER myadmin 
   TEMPLATE template0
   ENCODING 'SQL_ASCII'
   TABLESPACE  pg_default
   LC_COLLATE  'C'
   LC_CTYPE  'C'
   CONNECTION LIMIT  -1;

Noem het:

psql -U postgres postgres -f C:/path/to/db_create.sql

De truc hier is om verbinding te maken met de standaard onderhoudsdatabase "postgres" en maak van daaruit de nieuwe database. Ik doe het met de standaard superuser met de naam "postgres" in mijn voorbeeld.
psql -f voert de SQL-commando's uit in het gegeven bestand.

Je kunt ook gewoon een enkele opdracht uitvoeren met psql -c (geen bestand betrokken):

psql -U postgres postgres -c "CREATE DATABASE MydatAbseName WITH OWNER Myadmin
EMPLATE template ENCODING 'SQL_ASCII' TABLESPACE  pg_default LC_COLLATE  'C'
LC_CTYPE  C' CONNECTION LIMIT  -1"

Meer over het maken van een database in de fijne handleiding hier en hier .
Meer over psql .

Op Windows ziet het er ongeveer zo uit:

"C:\Program Files\PostgreSQL\verson_number\bin\psql.exe" -U user -f C:/path/to/db_create.sql postgres

De laatste "postgres" is de naam van de standaard onderhouds-db. Als u het in een batchbestand wilt gebruiken, moet u een wachtwoordprompt beantwoorden of verbinding maken met een gebruiker die toegang heeft zonder een wachtwoord op te geven. Basisprincipes in hoofdstukken Het wachtwoordbestand en Het pg_hba.conf-bestand van de handleiding. Meer hier:




  1. Berekening van de gemiddelde voorraadkosten in SQL

  2. Hoe het huidige Connection-object in Spring JDBC te krijgen

  3. Mysql Selecteer wederzijdse paren van records, zonder duplicaten

  4. hoe gegevens bij te werken met behulp van de slaapstand-query met bovenliggende eigenschap in where-clausule