[Pgsql-ayuda] Contrains
Gunnar Wolf
gwolf@campus.iztacala.unam.mx
Tue, 25 Jun 2002 13:19:00 -0500 (CDT)
> 2.- Como puedo crear un campo decimal que se incremente automaticamente.?
(ampliando)
Me gan=F3 la curiosidad...
Cuando creas una tabla que contiene un campo 'serial', una secuencia es
creada autom=E1ticamente:
# CREATE TEMP TABLE "incrementa" ("valor" serial);
NOTICE: CREATE TABLE will create implicit sequence 'incrementa_valor_seq' =
for SERIAL column 'incrementa.valor'
NOTICE: CREATE TABLE / UNIQUE will create implicit index 'incrementa_valor=
_key' for table 'incrementa'
CREATE
Si le preguntamos a Postgres (desde psql) cu=E1l es la estructura de la
secuencia:
# select * from incrementa_valor_seq;
sequence_name | last_value | increment_by | max_value | m=
in_value | cache_value | log_cnt | is_cycled | is_called
----------------------+------------+--------------+---------------------+--=
---------+-------------+---------+-----------+-----------
incrementa_valor_seq | 1 | 1 | 9223372036854775807 | =
1 | 1 | 1 | f | f
(1 row)
Ahora, en este caso, estamos hablando de enteros... Pero con esto tienes
suficiente para reimplementarlo con un simple (bueno, tal vez un
no-tan-simple ;-) ) trigger.
--=20
Gunnar Wolf - gwolf@campus.iztacala.unam.mx - (+52-55)5623-1118
PGP key 1024D/8BB527AF 2001-10-23
Fingerprint: 0C79 D2D1 2C4E 9CE4 5973 F800 D80E F35A 8BB5 27AF