Skip site navigation (1) Skip section navigation (2)

Re: longitud tipo dato serial

From: "Hector R(dot) De los Santos " <zahory(at)gmail(dot)com>
To: Gustavo Rosso <grosso(at)sadaic(dot)org(dot)ar>
Cc: Victor Avendaño <avenda(at)gmail(dot)com>, pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: longitud tipo dato serial
Date: 2010-03-22 14:38:00
Message-ID: 3efb88e61003220738p352813efj2b63e2af877fb183@mail.gmail.com (view raw or flat)
Thread:
Lists: pgsql-es-ayuda
Un trigger?
Me parece que es algo demaciado simple para tener que integrarlo en un
trigger, si deseas tener ese campo tipo Varchar y rellenarlo con ceros, solo
basta hacer el lpad() en el INSERT.

Suerte!

:: HDS Consultores TI
Servidores | Redes | Programacion | GNU/Linux | PostgreSQL
Web: http://hdsconsultores.net
Blog: http://codigohds.com
Linux User #:320363


2010/3/22 Gustavo Rosso <grosso(at)sadaic(dot)org(dot)ar>

>
>
> Victor Avendaño escribió:
>
>> Parece que me expresé mal, no necesariamente necesito un tipo de datos,
>> pero sería genial que así se pudiera generar, lo que deseo es poder tener
>> algo como un character varing de longitud 3 que sea autoincrementable, osea
>> que se baya generando de la siguiente manera 001, 002, 003..... 012,013,014,
>> ... etc debido a que necesito grabar esos 3 caracteres y como serial no me
>> conserva los ceros, quizas otra solucion seria poder guardar el serial pero
>> con los ceros delante cosa que yo al traerlos o exportarlos siempre pueda
>> manipular esos 3 caracteres... me explico???
>>
>> 2010/3/22 Ing. Marcos Ortiz Valmaseda <mlortiz(at)uci(dot)cu <mailto:
>> mlortiz(at)uci(dot)cu>>
>>
>>
>>    Victor Avendaño escribió:
>>
>>        Buenas Lista, mi duda es:
>>
>>        Hay alguna forma de crear tipo de datos serial 3 digitos o
>>        mas. Me explico un campo 'codx' de tipo serial y que
>>        autoincremente algo así 001, 002, 003. Según tengo entendido
>>        postgres incrementa 1, 2, 3, 4, 5, 6. Se puede dar la logitud
>>        o la catidad de digitos.
>>
>>        Espero se haya entendido.
>>
>>        Gracias
>>
>>    SERIAL  es un tipo de datos con un comportamiento definido; por lo
>>    que tendrías que hacer un nuevo tipo de datos, no usar éste.
>>    Pudieras implementar uno que se comportara como quieres, con una
>>    función aparte que asigne esos valores que quieres.
>>    Te dejo un ejemplo de cómo crear un tipo de datos en PostgreSQL:
>>    Tomado de la documentación:
>>
>>    CREATE TYPE inventory_item AS (
>>          name             text,
>>          supplier_id    integer,
>>          price              numeric
>>    );
>>
>>    Cómo usarlo:
>>
>>    CREATE TABLE on_hand (
>>            item    inventory_item,
>>            count  integer
>>    );
>>
>>    INSERT INTO on_hand VALUES (ROW('fuzzy dice', 42, 1.99), 1000);
>>
>>    Saludos
>>
>>  Un trigger que llame a una funcion antes del insert?
> Saludos!
> Gustavo
>
>>
>>    --     -------------------------------------------------------- -- Ing.
>>    Marcos Luís Ortíz Valmaseda                   --
>>    -- Twitter: http://twitter.com/@marcosluis2186        --
>>    -- FreeBSD Fan/User                                   --
>>    -- http://www.freebsd.org/es                          --
>>    -- Linux User # 418229                                --
>>    -- Database Architect/Administrator                   --
>>    -- PostgreSQL RDBMS                                   --
>>    -- http://www.postgresql.org                          --
>>    -- http://planetpostgresql.org                        --
>>    -- http://www.postgresql-es.org                       --
>>    --------------------------------------------------------
>>    -- Data WareHouse -- Business Intelligence Apprentice --
>>    -- http://www.tdwi.org                                --
>>    -------------------------------------------------------- -- Ruby
>>    on Rails Fan/Developer                        --
>>    -- http://rubyonrails.org                             --
>>    --------------------------------------------------------
>>
>>    Comunidad Técnica Cubana de PostgreSQL
>>    http://postgresql.uci.cu
>>    http://personas.grm.uci.cu/+marcos        Centro de Tecnologías de
>> Gestión de Datos (DATEC) Contacto:
>>                                Correo: centalad(at)uci(dot)cu <mailto:
>> centalad(at)uci(dot)cu>                                                  Telf:
>> +53 07-837-3737                                                        +53
>> 07-837-3714                                           Universidad de las
>> Ciencias
>>
>>    Informáticas        http://www.uci.cu
>>
>>
>>
>>
>> --
>> Víctor Avendaño Fuentes.
>> Soporte Informático.
>> Fono: 65-484811
>> Móvil: 09-85263743
>> E-mail: vavenda(at)clinicapuertomontt(dot)cl <mailto:
>> vavenda(at)clinicapuertomontt(dot)cl>.
>> www.clinicapuertomontt.cl <http://www.clinicapuertomontt.cl>
>>
> --
> TIP 4: No hagas 'kill -9' a postmaster
>

In response to

Responses

pgsql-es-ayuda by date

Next:From: Gustavo RossoDate: 2010-03-22 14:43:39
Subject: Re: longitud tipo dato serial
Previous:From: (Syswarp) Carlos Enrique PerezDate: 2010-03-22 14:12:14
Subject: Postgres como base de datos documental

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group