Eso de poner los rellenar con ceros lo puedes hacer via tu lenguaje o via SQL con PostgreSQL usando lpad(). Te recomiendo que tengas el campo entero o serial y hagas el relleno de ceros con lpad(), Leete esto: http://www.postgresql.org/docs/8.4/static/functions-string.html
Suerte! :: HDS Consultores TI Servidores | Redes | Programacion | GNU/Linux | PostgreSQL Web: http://hdsconsultores.net Blog: http://codigohds.com 2010/3/22 Victor Avendaño <ave...@gmail.com> > 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 <mlor...@uci.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 >> >> -- >> -------------------------------------------------------- -- 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: >> centa...@uci.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: vave...@clinicapuertomontt.cl. > www.clinicapuertomontt.cl >