Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

Crear e insertar campo serial Postgresql...

Estas en el tema de Crear e insertar campo serial Postgresql... en el foro de Bases de Datos General en Foros del Web. Estimados amigos: como puedo crear e insertar un campo autoincremental en una base de datos Postgresql? me parece que los FAQs sale como crear un ...
  #1 (permalink)  
Antiguo 09/08/2003, 22:07
Avatar de Ugho  
Fecha de Ingreso: noviembre-2002
Ubicación: Santiago, Chile
Mensajes: 487
Antigüedad: 21 años, 5 meses
Puntos: 0
Crear e insertar campo serial Postgresql...

Estimados amigos:
como puedo crear e insertar un campo autoincremental en una base de datos Postgresql?
me parece que los FAQs sale como crear un campo asi, pero, no me funciona el insertar una fila.
Me podrian dar un ejemplo simple
SALUDOS.
De antemano gracias...
__________________
________________________________________

Ugho.
  #2 (permalink)  
Antiguo 11/08/2003, 08:36
Avatar de Ugho  
Fecha de Ingreso: noviembre-2002
Ubicación: Santiago, Chile
Mensajes: 487
Antigüedad: 21 años, 5 meses
Puntos: 0
Estimados amigos, es que nadie ha hecho esto?
He probado de la siguiente manera:
basedatos=#INSERT INTO tabla values(' ','nombre');
pero no resulta.
La tabLa la defini de la siguiente manera:
CREATE TABLE tabla(id serial,nombre varchar(50));
y cuando trato de insertar una fila...nada.
Alguien me puede ayudar?
SALUDOS.
__________________
________________________________________

Ugho.
  #3 (permalink)  
Antiguo 14/08/2003, 12:15
Avatar de Ugho  
Fecha de Ingreso: noviembre-2002
Ubicación: Santiago, Chile
Mensajes: 487
Antigüedad: 21 años, 5 meses
Puntos: 0
Tampoco con esta pregunta me pueden ayudar?
SALUDOS
__________________
________________________________________

Ugho.
  #4 (permalink)  
Antiguo 15/08/2003, 08:08
 
Fecha de Ingreso: agosto-2003
Mensajes: 2
Antigüedad: 20 años, 8 meses
Puntos: 0
Para crear la tabla con un campo autoincrementable.

create table (campo1 serial , campo2 varchar2(15));

Para insertar obviamente ,no tienes que hacer nada con el campo este.
  #5 (permalink)  
Antiguo 19/08/2003, 15:31
Avatar de Ugho  
Fecha de Ingreso: noviembre-2002
Ubicación: Santiago, Chile
Mensajes: 487
Antigüedad: 21 años, 5 meses
Puntos: 0
Estimado amigo Malaga:
Que significa no hacer nada, me podrías dar el ejemplo de como insertas una fila?
INSERT INTO table values ......?????
SALUDOS.
__________________
________________________________________

Ugho.
  #6 (permalink)  
Antiguo 20/08/2003, 18:15
 
Fecha de Ingreso: agosto-2003
Mensajes: 2
Antigüedad: 20 años, 8 meses
Puntos: 0
>La tabLa la defini de la siguiente manera:
>CREATE TABLE tabla(id serial,nombre varchar(50));
>y cuando trato de insertar una fila...nada.
>Alguien me puede ayudar?



Saludos: Se muy poco sobre bases de datos pero se me presento este problema al usar secuencias SQL desde PHP conectandose a postgres, espero te sirva..

Al momento de crear la tabla te debio aparecer un mensaje como este :

CREATE TABLE will create implicit sequence 'tabla_id_seq' for SERIAL column 'tabla_id'

es decir se crea una relacion de tipo"sequence" , puedes corroborar el nombre preciso con

basedatos=# \d

Ahora .. es probable que no puedas insertar tus datos por que careces de permisos para hacerlo .. lo podrias corregir con

GRANT ALL on tabla_id_seq to (usuario);

revisa los privilegios de acceso con:

basedatos=# \dp

Una vez que hice esta modificación pude insertar datos como aqui lo mencionas

>basedatos=#INSERT INTO tabla values(' ','nombre');

Si te sirve este "tip" por favor contesta para estar enterado o para que alguno de los expertos de este foro nos oriente correctamente.

hasta pronto!!
  #7 (permalink)  
Antiguo 21/08/2003, 09:00
Avatar de Ugho  
Fecha de Ingreso: noviembre-2002
Ubicación: Santiago, Chile
Mensajes: 487
Antigüedad: 21 años, 5 meses
Puntos: 0
Estimado amigo esepus:
En realidad si tengo permiso para insertar datos.
He hecho lo que me dices pero me inserta solo el primer campo asi:
INSERT INTO usuario2 values(' ','nombre');
pero cuando trato de insertar otro campo:

INSERT INTO usuario2 values(' ','nombre2');
me da el siguiente mensaje de error:
ERROR: Cannot insert a duplicate key into unique index usuario2_id_key
SALUDOS.......
__________________
________________________________________

Ugho.
  #8 (permalink)  
Antiguo 21/08/2003, 09:37
 
Fecha de Ingreso: agosto-2003
Mensajes: 2
Antigüedad: 20 años, 8 meses
Puntos: 0
INSERT INTO tabla(nombre) values ('nombre2');

insertas en el campo nombre el siguiente valor .. el campo id se autoincrementa sin tener que hacer referencia a el ..
  #9 (permalink)  
Antiguo 21/08/2003, 13:45
Avatar de Ugho  
Fecha de Ingreso: noviembre-2002
Ubicación: Santiago, Chile
Mensajes: 487
Antigüedad: 21 años, 5 meses
Puntos: 0
Perfecto amigo esepus:
Ya entendi el concepto, y me quedó super claro.
Todo anda bien.
Gracias...
SALUDOS
__________________
________________________________________

Ugho.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 03:50.