INSERT

Nombre

INSERT  --  Inserta filas nuevas en una tabla

Synopsis

INSERT INTO table [ ( column [, ...] ) ]
    { VALUES ( expression [, ...] ) | SELECT query }
  

Entradas

table

El nombre de una tabla existente.

column

El nombre de una columna en table.

expression

Una expresi�n o un valor v�lidos a asignar en column.

query

Una consulta v�lida. Vea la instruci�n SELECT para una mejor descripci�n de argumentos v�lidos.

Salidas

INSERT oid 1

Mensaje devuelto si solo se ha insertado una fila. oid es el n�mero OID de la fila insertada.

INSERT 0 #

Mensaje devuelto si se ha insertado m�s de una fila. # es el n�mero de filas insertadas.

Descripci�n

INSERT permite la inserci�n de nuevas filas en una clase o una tabla. Se puede insertar una fila a la vez o varias como el resultado de una consulta. Las columnas en el resultado pueden ser listadas en cualquier orden.

Cada columna que no est� presente en la lista de origen ser� insertada usando el valor por defecto, que puede ser tanto un valor por defecto declarado DEFAULT o bien NULL. Postgres rechazar� la nueva columna si se inserta un NULL en una columna declarada como NOT NULL.

Si la expresi�n para cada columna no es del tipo de datos correcto, se intentar� una coerci�n de tipos automaticamente.

Debe tener privilegios de inserci�n en la tabla para a�adir en ella, asi como privilegios de selecci�n en cualquier tabla especificada en una clausula WHERE.

Uso

Inserta una fila en la tabla films:

INSERT INTO films VALUES
    ('UA502','Bananas',105,'1971-07-13','Comedy',INTERVAL '82 minute');
   

En este segundo ejemplo la columna date_prod se omite y entonces tendr� el valor por defecto de NULL:

INSERT INTO films (code, title, did, date_prod, kind)
    VALUES ('T_601', 'Yojimbo', 106, DATE '1961-06-16', 'Drama');
   

Inserta una fila simple en la tabla distributors; note que solo se especifica la columna name , de forma que la columna omitida did sera asignada con su valor por defecto.

INSERT INTO distributors (name) VALUES ('British Lion');
   

Inserta varias filas en la tabla films desde la tabla tmp:

INSERT INTO films SELECT * FROM tmp;
   

Inserci�n en arrays (vea The PostgreSQL User's Guide para mayor informaci�n sobre los arrays):

-- Crea un tablero de juego vacio de 3x3 para cruz y raya
-- (todos estos querys generan el mismo efecto)
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,'{{,,},{,,},{,,}}');
   

Compatibilidad

SQL92

INSERT es totalmente compatible con SQL92. Las posibles limitaciones en las caracteristicas de la clausula query estan documentadas en SELECT.