mirror of
https://git.postgresql.org/git/postgresql.git
synced 2024-12-21 08:29:39 +08:00
114 lines
3.0 KiB
Plaintext
114 lines
3.0 KiB
Plaintext
.\" This is -*-nroff-*-
|
|
.\" XXX standard disclaimer belongs here....
|
|
.\" $Header: /cvsroot/pgsql/doc/man/Attic/insert.l,v 1.1.1.1 1996/08/18 22:14:24 scrappy Exp $
|
|
.TH INSERT SQL 11/05/95 Postgres95 Postgres95
|
|
.SH NAME
|
|
insert \(em insert tuples to a relation
|
|
.SH SYNOPSIS
|
|
.nf
|
|
\fBinsert\fR into classname
|
|
[(att.expr-1,{att_expr.i})]
|
|
{\fBvalues\fR (expression1 {,expression-i}) |
|
|
\fBselect\fR expression1,{expression-i}
|
|
[\fBfrom\fR from-list] [\fBwhere\fR qual]
|
|
.fi
|
|
.SH DESCRIPTION
|
|
.BR Insert
|
|
adds instances that satisfy the qualification,
|
|
.IR qual ,
|
|
to
|
|
.IR classname .
|
|
.IR Classname
|
|
must be the name of an existing class. The target list specifies the
|
|
values of the fields to be appended to
|
|
.IR classname .
|
|
That is, each
|
|
.IR att_expr
|
|
specifies a field (either an attribute name or an attribute name plus
|
|
an array specification) to which the corresponding
|
|
.IR expression
|
|
should be assigned. The fields in the target list may be listed in
|
|
any order. Fields of the result class which do not appear in the
|
|
target list default to NULL. If the expression for each field is not
|
|
of the correct data type, automatic type coercion will be attempted.
|
|
.PP
|
|
An array initialization may take exactly one of the following forms:
|
|
.nf
|
|
--
|
|
-- Specify a lower and upper index for each dimension
|
|
--
|
|
att_name[lIndex-1:uIndex-1]..[lIndex-i:uIndex-i] = array_str
|
|
|
|
--
|
|
--Specify only the upper index for each dimension
|
|
--(each lower index defaults to 1)
|
|
--
|
|
att_name[uIndex-1]..[uIndex-i] = array_str
|
|
|
|
--
|
|
--Use the upper index bounds as specified within array_str
|
|
--(each lower index defaults to 1)
|
|
--
|
|
att_name = array_str
|
|
.fi
|
|
where each
|
|
.IR lIndex
|
|
or
|
|
.IR uIndex
|
|
is an integer constant and
|
|
.IR array_str
|
|
is an array constant (see
|
|
.IR introduction (l)).
|
|
.PP
|
|
|
|
If the user does not specify any array bounds (as in the third form)
|
|
then Postgres will attempt to deduce the actual array bounds from the
|
|
contents of
|
|
.IR array_str .
|
|
|
|
If the user does specify explicit array bounds (as in the first and
|
|
second forms) then the array may be initialized partly or fully
|
|
using a C-like syntax for array initialization.
|
|
However, the uninitialized array elements will
|
|
contain garbage.
|
|
.PP
|
|
You must have write or append access to a class in order to append to
|
|
it, as well as read access on any class whose values are read in the
|
|
target list or qualification (see
|
|
.IR "change acl" (l)).
|
|
.SH EXAMPLES
|
|
.nf
|
|
--
|
|
--Make a new employee Jones work for Smith
|
|
--
|
|
insert into emp
|
|
select newemp.name, newemp.salary,
|
|
"Smith", 1990-newemp.age
|
|
from newemp
|
|
where name = "Jones"
|
|
.fi
|
|
.nf
|
|
--
|
|
--Insert into newemp class to newemp
|
|
--
|
|
insert into newemp
|
|
select * from newemp1
|
|
.fi
|
|
.nf
|
|
--
|
|
--Create an empty 3x3 gameboard for noughts-and-crosses
|
|
--(all of these queries create the same board attribute)
|
|
--
|
|
insert into tictactoe (game, board[1:3][1:3])
|
|
values(1,'{{"","",""},{},{"",""}}')
|
|
insert into tictactoe (game, board[3][3])
|
|
values (2,'{}')
|
|
insert into tictactoe (game, board)
|
|
values (3,'{{,,},{,,},{,,}}')
|
|
.fi
|
|
.SH "SEE ALSO"
|
|
create table(l),
|
|
create type(l),
|
|
update(l),
|
|
select(l)
|