Ver Mensaje Individual
  #2 (permalink)  
Antiguo 03/01/2011, 10:51
Avatar de xdrtas
xdrtas
 
Fecha de Ingreso: junio-2008
Ubicación: Venezuela
Mensajes: 97
Antigüedad: 16 años, 1 mes
Puntos: 13
Respuesta: Insertar en una tabla un dato serial auto incrementable

Hola radamantys30, verás, cuando creas un campo SERIAL lo normal es que se te cree una secuencia, la secuencia es la que lleva la cuenta del autoincremento y para poder usarlo en un INSERT tienes que usar la función nextval('nombre_de_la_secuencia')

Dentro de tu base de datos vas a encontrar un elemento del árbol que se llama "Sequences" ahí tienes las secuencias para cada una de los campos seriales que hayas creado. Para ilustrarte mejor te pongo un ejemplo:

Código SQL:
Ver original
  1. INSERT INTO "Contenido"(
  2.                 "con_ID",
  3.                 "con_Titulo",
  4.                 "con_Contenido",
  5.                 "con_Imagen"
  6.             )
  7.             VALUES (
  8.                 NEXTVAL('"Contenido_con_ID_seq"'),
  9.                 tit,
  10.                 con,
  11.                 img        
  12.             );
NOTA: la doble comilla lo uso porque tengo los nombres de los campos y el nombre de la secuencia con caracteres mayúsculas, con todos los caracteres en minúsculas no hace falta usar la comilla doble. Hay otras funciones que manejan secuencias como SETVAL, CURVAL, etc... pero para hacer el auto incremento es con NEXTVAL, como lo ilustro en el ejemplo.

Espero haberte aclarado un poco la duda.
Un cordial saludo.
__________________
¿Cuál es el mejor lenguaje para programar?
Aquel lenguaje por el cual te paguen más.
[--::xdrtas.coolpage.biz::--]
[---:::xdrtas:::---]