Ver Mensaje Individual
  #8 (permalink)  
Antiguo 28/04/2011, 07:37
Avatar de huesos52
huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 2 meses
Puntos: 360
Respuesta: Se puede cambiar el orden de las columna en postgres?

Una secuencia es un objeto de la base de datos que es el encargado de incrementar automaticamente frente a la acción de una tabla.

Cuando creas un serial, implicitamente está creando una secuencia y poniendola como valor por defecto en la tabla.
Esto:
CREATE TABLE tablename (
colname SERIAL
);

Es exactamente igual a esto:
CREATE SEQUENCE tablename_colname_seq;
CREATE TABLE tablename (
colname integer DEFAULT nextval('tablename_colname_seq') NOT NULL
);


cuando te dice que no existe la relación newsequence es por que no has creado el objeto.

MIra la seguidilla de esto:

Código SQL:
Ver original
  1. pruebas=> CREATE TABLE prueba_sequence(id INTEGER, nombre TEXT);
  2. CREATE TABLE
  3. pruebas=> \d prueba_sequence
  4. Tabla ½public.prueba_sequence╗
  5.  Columna |  Tipo   | Modificadores
  6. ---------+---------+---------------
  7.  id      | INTEGER |
  8.  nombre  | text    |
  9.  
  10.  
  11. pruebas=> ALTER TABLE prueba_sequence ALTER COLUMN id SET DEFAULT NEXTVAL('newsequence'::regclass);
  12. ERROR:  no existe la relación «newsequence»
  13. pruebas=> CREATE SEQUENCE newsequence;
  14. CREATE SEQUENCE
  15. pruebas=> ALTER TABLE prueba_sequence ALTER COLUMN id SET DEFAULT NEXTVAL('newsequence'::regclass);
  16. ALTER TABLE
  17. pruebas=> \d prueba_sequence
  18.                  Tabla ½public.prueba_sequence╗
  19.  Columna |  Tipo   |                   Modificadores
  20. ---------+---------+---------------------------------------------------
  21.  id      | INTEGER | valor por omisin NEXTVAL('newsequence'::regclass)
  22.  nombre  | text    |
  23.  
  24.  
  25. pruebas=>
__________________
Without data, You are another person with an opinion.
W. Edwads Deming