251 lines
6.3 KiB
Plaintext
251 lines
6.3 KiB
Plaintext
|
<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:
|
||
|
-->
|