diff options
Diffstat (limited to 'doc/src/sgml/ref/create_database.sgml')
| -rw-r--r-- | doc/src/sgml/ref/create_database.sgml | 250 |
1 files changed, 250 insertions, 0 deletions
diff --git a/doc/src/sgml/ref/create_database.sgml b/doc/src/sgml/ref/create_database.sgml new file mode 100644 index 0000000000..98454ace49 --- /dev/null +++ b/doc/src/sgml/ref/create_database.sgml @@ -0,0 +1,250 @@ +<REFENTRY ID="SQL-CREATEDATABASE-1"> + <REFMETA> + <REFENTRYTITLE> + CREATE DATABASE + </REFENTRYTITLE> + <REFMISCINFO>SQL - Language Statements</REFMISCINFO> + </REFMETA> + <REFNAMEDIV> + <REFNAME> + CREATE DATABASE + </REFNAME> + <REFPURPOSE> + Creates a new database + </REFPURPOSE> + <REFSYNOPSISDIV> + <REFSYNOPSISDIVINFO> + <DATE>1998-04-15</DATE> + </REFSYNOPSISDIVINFO> + <SYNOPSIS> + CREATE DATABASE <REPLACEABLE CLASS="PARAMETER">name</REPLACEABLE> [WITH LOCATION = '<replaceable class="parameter">dbpath</replaceable>'] + </SYNOPSIS> + + <REFSECT2 ID="R2-SQL-CREATEDATABASE-1"> + <REFSECT2INFO> + <DATE>1998-04-15</DATE> + </REFSECT2INFO> + <TITLE> + Inputs + </TITLE> + <PARA> + </PARA> + <VARIABLELIST> + <VARLISTENTRY> + <TERM> + </TERM> + <LISTITEM> + <PARA> + <VARIABLELIST> + <VARLISTENTRY> + <TERM> + <replaceable class="parameter">name</replaceable> + </TERM> + <LISTITEM> + <PARA> + The name of a database to create. + </PARA> + </LISTITEM> + </VARLISTENTRY> + <VARLISTENTRY> + <TERM> + <replaceable class="parameter">dbpath</replaceable> + </TERM> + <LISTITEM> + <PARA> + An alternate location can be specified as either an + environment variable known to the backend server + (e.g. '<envar>PGDATA2</envar>') or as an absolute path name + (e.g. '<filename>/usr/local/pgsql/data</filename>'). + In either case, the location must be pre-configured + by <command>initlocation</command>. + </PARA> + </LISTITEM> + </VARLISTENTRY> + </VARIABLELIST> + </LISTITEM> + </VARLISTENTRY> + </VARIABLELIST> + </REFSECT2> + + <REFSECT2 ID="R2-SQL-CREATEDATABASE-2"> + <REFSECT2INFO> + <DATE>1998-04-15</DATE> + </REFSECT2INFO> + <TITLE> + Outputs + </TITLE> + <PARA> + </PARA> + <VARIABLELIST> + <VARLISTENTRY> + <TERM> + </TERM> + <LISTITEM> + <PARA> + <VARIABLELIST> + <VARLISTENTRY> + <TERM> + <ReturnValue>CREATEDB</ReturnValue> + </TERM> + <LISTITEM> + <PARA> + Message returned if the command completes successfully. + </PARA> + </LISTITEM> + </VARLISTENTRY> + <VARLISTENTRY> + <TERM> + <ReturnValue>WARN: createdb: database "<replaceable class="parameter">name</replaceable>" already exists.</ReturnValue> + </TERM> + <LISTITEM> + <PARA> + This occurs if <replaceable class="parameter">database</replaceable> specified already exists. + </PARA> + </LISTITEM> + </VARLISTENTRY> + <VARLISTENTRY> + <TERM> + <ReturnValue>ERROR: Unable to create database directory <replaceable class="parameter">directory</replaceable> +</ReturnValue> + </TERM> + <LISTITEM> + <PARA> +There was a problem with creating the required directory; this operation will + need permissions for the <literal>postgres</literal> user on the specified location. + </PARA> + </LISTITEM> + </VARLISTENTRY> + </variablelist> + </LISTITEM> + </VARLISTENTRY> + </VARIABLELIST> + </REFSECT2> + </REFSYNOPSISDIV> + + <REFSECT1 ID="R1-SQL-CREATEDATABASE-1"> + <REFSECT1INFO> + <DATE>1998-04-15</DATE> + </REFSECT1INFO> + <TITLE> + Description + </TITLE> + <PARA> + CREATE DATABASE creates a new PostgreSQL database. + The creator becomes the administrator of the new database. + </PARA> + + <REFSECT2 ID="R2-SQL-CREATEDATABASE-3"> + <REFSECT2INFO> + <DATE>1998-04-15</DATE> + </REFSECT2INFO> + <TITLE> + Notes + </TITLE> + <PARA> + CREATE DATABASE statement is a PostgreSQL language extension. + </PARA> + <para> + Refer to DROP DATABASE statement to remove a database. + </para> + </REFSECT2> + + <REFSECT1 ID="R1-SQL-CREATEDATABASE-2"> + <TITLE> + Usage + </TITLE> + <PARA> + To create a new database: + </PARA> + <ProgramListing> + CREATE DATABASE lusiadas; + </ProgramListing> + <PARA> + To create a new database in <filename>~/private_db</filename>: + </PARA> + <ProgramListing> + $ mkdir private_db + $ initlocation ~/private_db + <computeroutput>Creating Postgres database system directory /home/olly/private_db/base</computeroutput> + + $ chmod a+rx private_db + $ chmod a+rwx private_db/base + $ psql + <computeroutput>Welcome to the POSTGRESQL interactive sql monitor: + Please read the file COPYRIGHT for copyright terms of POSTGRESQL + + type \? for help on slash commands + type \q to quit + type \g or terminate with semicolon to execute query + You are currently connected to the database: template1 + + template1=></computeroutput> <userinput>create database elsewhere with location = '/home/olly/private_db';</userinput> + <computeroutput>CREATEDB</computeroutput> + </ProgramListing> + </REFSECT1> + + <REFSECT1 ID="R1-SQL-CREATEDATABASE-3"> + <TITLE> + Bugs + </TITLE> + <PARA> + Where an ordinary user cannot change the ownership of files to other users + (which is correct from a security point of view), there is no easy way + to give the postgres backend access to files in a database at a + non-standard location without + giving similar access to all users. The situation shown in the usage + example makes <filename>/home/olly/private_db</filename> world-accessible. + </PARA> + <para> + If, on the other hand, the user gets the system administrator to give + file ownership to the <literal>postgres</literal> superuser and restrict access, he will + then be unable to delete the <filename><replaceable>directory</replaceable>/base</filename> directory. + </para> + <comment> + initlocation does not create a PG_VERSION file in the specified location. + How will PostgreSQL handle the situation if it is upgraded to an + incompatible database version? + </comment> + </refsect1> + + <REFSECT1 ID="R1-SQL-CREATEDATABASE-4"> + <TITLE> + Compatibility + </TITLE> + <PARA> + </PARA> + + <REFSECT2 ID="R2-SQL-CREATEDATABASE-4"> + <REFSECT2INFO> + <DATE>1998-04-15</DATE> + </REFSECT2INFO> + <TITLE> + SQL92 + </TITLE> + <PARA> + There is no <command>CREATE DATABASE</command> statement on SQL92. + </PARA> + <para> + The equivalent command in standard SQL is <command>CREATE SCHEMA</command>. + </para> + </refsect2> + </refsect1> +</REFENTRY> + + +<!-- Keep this comment at the end of the file +Local variables: +mode: sgml +sgml-omittag:t +sgml-shorttag:t +sgml-minimize-attributes:nil +sgml-always-quote-attributes:t +sgml-indent-step:1 +sgml-indent-data:t +sgml-parent-document:nil +sgml-default-dtd-file:"../reference.ced" +sgml-exposed-tags:nil +sgml-local-catalogs:"/usr/lib/sgml/catalog" +sgml-local-ecat-files:nil +End: +--> |
