Re: [pgsql-es-ayuda] Como cambiar tipo de datos !!!
2014-11-11 15:29 GMT-05:00 Angelo Astorga : > el tipo inicial se creo como: > create type tipo_reserva as enum ('Pagina','Telefonica'); > > y ahora necesito que también incluya al tipo_reserva la opción 'Smartphone' > > Ahora bien, cree un nuevo tipo con las 3 opciones, pero al modificar el > campo con el nuevo tipo, me manda un error que no puede convertir un tipo en > otro... alguna ayuda porfa.- > ah! eso es distinto. Algo que no estas diciendo aquí y que lo dijiste en un mail privado que me enviaste (siempre responde con copia a la lista) es que el campo esta asociado a vistas. te es posible borrar las vistas? si es así, la solución no es muy compleja: ALTER TABLE tabla ALTER modo_reserva SET DATA TYPE nuevo_tipo USING modo_reserva::text::nuevo_tipo; -- Jaime Casanova www.2ndQuadrant.com Professional PostgreSQL: Soporte 24x7 y capacitación Phone: +593 4 5107566 Cell: +593 987171157 - Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda@postgresql.org) Para cambiar tu suscripción: http://www.postgresql.org/mailpref/pgsql-es-ayuda
Re: [pgsql-es-ayuda] Como cambiar tipo de datos !!!
-BEGIN PGP SIGNED MESSAGE- Hash: SHA512 El 11/11/14 a las 17:29, Angelo Astorga escibió: > el tipo inicial se creo como: create type tipo_reserva as enum > ('Pagina','Telefonica'); > > y ahora necesito que también incluya al tipo_reserva la opción > 'Smartphone' > > Ahora bien, cree un nuevo tipo con las 3 opciones, pero al > modificar el campo con el nuevo tipo, me manda un error que no > puede convertir un tipo en otro... alguna ayuda porfa.- > En versiones más nuevas puedes: postgres=# ALTER TYPE tipo_reserva ADD VALUE 'Smartphone' AFTER 'Telefonica'; ALTER TYPE Si no te queda más remedio y no puede recrear el dato, puedes: postgres=# select * from pg_enum ; enumtypid | enumsortorder | enumlabel - ---+---+ 32769 | 1 | Pagina 32769 | 2 | Telefonica 32769 | 3 | Smartphone (3 rows) postgres=# INSERT INTO pg_enum VALUES (32769,4,'Cuak'); INSERT 32775 1 postgres=# select 'Cuak'::tipo_reserva; tipo_reserva - -- Cuak (1 row) - -- - -- Emanuel Calvo http://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Training & Services Bs. As., Argentina (GMT-3) -BEGIN PGP SIGNATURE- Version: GnuPG/MacGPG2 v2.0.18 (Darwin) Comment: GPGTools - http://gpgtools.org iQIcBAEBCgAGBQJUYo9uAAoJEIBeI/HMagHmWNUP/i4IVGvKqlHi+WFSKLlXzMxB BvnJKaSmMWV99uPJFv2DoWW3gRMEYTkMeSVFgr7KeMSNjLopaOIN6sXjuTTtZGOm dAkuTbbL4yPsjpihrwhBlA4RE8h5bPYQRbzhKrVdHBPDEuDWztJmqZRlJ03YxiCy atiuaVyPWEJtKn0L1zik32oAUe6jn5YYCHnX6YNxsb51n60NiA2QdZgrT/7PmBbT d6+fTVhF53TIZILeIkhBituI6M1eb+XOni7Qp1Tbu8GiGBnyg+lIGk44eHmP0IMN gMCnvpLY1gZPrwcbMU/Kvr361MEkKa441K2/cqyNG2BrS/r8yWkoQdkDHha4zI9M lKEL4Iq/meo8iXysmYDkO3VKst95fLLP2rMRxZ25yH45WFn+mljrD7IzcBc4YefI fuxBrKtKYSx76rexVOrK4hP8vQ40n43GoViFH/mnyNBCL9aoh+VXQBFLqj+gUEJK e0H+PfSckg6OTkSDfWbfCOLGFDNXcdwZ09HFQlmjpwhGzRDkTGhAQm0JpJ3S/XmA 5zOjk1R1GtGHr6DmBFIJkUyte8Z3ZId2K3a9R4gkNKFNVdb4Ly/CejHimZmbSqpE klQ6VbzK3CUmYTlUm0eHiqFOiM7HL0PwD774nQ3JXU9vKfEeqVrjiZGmipVcKltK jPSTsGli1QR6UZzonsCH =fArv -END PGP SIGNATURE- - Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda@postgresql.org) Para cambiar tu suscripci�n: http://www.postgresql.org/mailpref/pgsql-es-ayuda
Re: [pgsql-es-ayuda] Como cambiar tipo de datos !!!
Algunas cosas simplemente no se pueden, pero hay workarounds que se pueden aplicar. Lo malo en tu caso es que se llevarian muchos pasos para obtener el resultado logrado. * Primero debes crear otro tipo con todos los valores requeridos y obviamente otro nombre para el nuevo tipo. * En las tablas donde aplique, crear una columna con el nuevo tipo y actualizar ese valor dependiendo el valor de la columna original. * Eliminas la columna original y renombras la nueva columna como la original. Si quieres que el nuevo tipo se llame igual que el anterior, repites todo el proceso. Saludos 2014-11-11 14:29 GMT-06:00 Angelo Astorga : > el tipo inicial se creo como: > create type tipo_reserva as enum ('Pagina','Telefonica'); > > y ahora necesito que también incluya al tipo_reserva la opción > 'Smartphone' > > Ahora bien, cree un nuevo tipo con las 3 opciones, pero al modificar el > campo con el nuevo tipo, me manda un error que no puede convertir un tipo > en otro... alguna ayuda porfa.- > > saludos, > > > El 11 de noviembre de 2014, 15:53, Jaime Casanova > escribió: > >> 2014-11-11 11:49 GMT-05:00 Angelo Astorga : >> > Hola Lista, >> > Tengo postgresql ver 8.4.7 con una tabla que posee un campo tipo >> definido ya >> > existente y necesito modificarlo, es decir, agregando 2 tipos >> adicionales >> > que soporte... alguna ayuda al respecto? >> > >> > Ejemplo: >> > modo_reserva tipo_reserva not null default 'Pagina'::tipo_reserva, >> > >> >> y que error te da? quizá lo que necesitas es agregar la clausula >> USING. Además si tienes un valor default yo lo haría en dos partes. >> >> ALTER TABLE tabla ALTER modo_reserva DROP DEFAULT, >>ALTER modo_reserva SET DATA TYPE >> tipo_reserva >> USING modo_reserva::tipo_reserva, >>ALTER modo_reserva SET DEFAULT >> 'Pagina'::tipo_reserva; >> >> > Necesito que además soporte los tipos 'Telefonica' y "Smartphone'... >> estoy >> > probando con alter type... y no logro modificar dicho campo >> > >> >> ? >> >> >> -- >> Jaime Casanova www.2ndQuadrant.com >> Professional PostgreSQL: Soporte 24x7 y capacitación >> Phone: +593 4 5107566 Cell: +593 987171157 >> > > -- Lindolfo Iván Perales Mancinas Solo existen 10 tipos de personas en el mundo, las que saben binario y las que no.
Re: [pgsql-es-ayuda] Como cambiar tipo de datos !!!
el tipo inicial se creo como: create type tipo_reserva as enum ('Pagina','Telefonica'); y ahora necesito que también incluya al tipo_reserva la opción 'Smartphone' Ahora bien, cree un nuevo tipo con las 3 opciones, pero al modificar el campo con el nuevo tipo, me manda un error que no puede convertir un tipo en otro... alguna ayuda porfa.- saludos, El 11 de noviembre de 2014, 15:53, Jaime Casanova escribió: > 2014-11-11 11:49 GMT-05:00 Angelo Astorga : > > Hola Lista, > > Tengo postgresql ver 8.4.7 con una tabla que posee un campo tipo > definido ya > > existente y necesito modificarlo, es decir, agregando 2 tipos adicionales > > que soporte... alguna ayuda al respecto? > > > > Ejemplo: > > modo_reserva tipo_reserva not null default 'Pagina'::tipo_reserva, > > > > y que error te da? quizá lo que necesitas es agregar la clausula > USING. Además si tienes un valor default yo lo haría en dos partes. > > ALTER TABLE tabla ALTER modo_reserva DROP DEFAULT, >ALTER modo_reserva SET DATA TYPE > tipo_reserva > USING modo_reserva::tipo_reserva, >ALTER modo_reserva SET DEFAULT > 'Pagina'::tipo_reserva; > > > Necesito que además soporte los tipos 'Telefonica' y "Smartphone'... > estoy > > probando con alter type... y no logro modificar dicho campo > > > > ? > > > -- > Jaime Casanova www.2ndQuadrant.com > Professional PostgreSQL: Soporte 24x7 y capacitación > Phone: +593 4 5107566 Cell: +593 987171157 >
Re: [pgsql-es-ayuda] Como cambiar tipo de datos !!!
2014-11-11 11:49 GMT-05:00 Angelo Astorga : > Hola Lista, > Tengo postgresql ver 8.4.7 con una tabla que posee un campo tipo definido ya > existente y necesito modificarlo, es decir, agregando 2 tipos adicionales > que soporte... alguna ayuda al respecto? > > Ejemplo: > modo_reserva tipo_reserva not null default 'Pagina'::tipo_reserva, > y que error te da? quizá lo que necesitas es agregar la clausula USING. Además si tienes un valor default yo lo haría en dos partes. ALTER TABLE tabla ALTER modo_reserva DROP DEFAULT, ALTER modo_reserva SET DATA TYPE tipo_reserva USING modo_reserva::tipo_reserva, ALTER modo_reserva SET DEFAULT 'Pagina'::tipo_reserva; > Necesito que además soporte los tipos 'Telefonica' y "Smartphone'... estoy > probando con alter type... y no logro modificar dicho campo > ? -- Jaime Casanova www.2ndQuadrant.com Professional PostgreSQL: Soporte 24x7 y capacitación Phone: +593 4 5107566 Cell: +593 987171157 - Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda@postgresql.org) Para cambiar tu suscripción: http://www.postgresql.org/mailpref/pgsql-es-ayuda
[pgsql-es-ayuda] Como cambiar tipo de datos !!!
Hola Lista, Tengo postgresql ver 8.4.7 con una tabla que posee un campo tipo definido ya existente y necesito modificarlo, es decir, agregando 2 tipos adicionales que soporte... alguna ayuda al respecto? Ejemplo: modo_reserva tipo_reserva not null default 'Pagina'::tipo_reserva, Necesito que además soporte los tipos 'Telefonica' y "Smartphone'... estoy probando con alter type... y no logro modificar dicho campo Saludos y gracias,