Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » PostgreSQL »

duda con "migración" de consulta de my a pg

Estas en el tema de duda con "migración" de consulta de my a pg en el foro de PostgreSQL en Foros del Web. Saludos Probando un sistemita para la gestión de menus de forma dinámica [0] que está para mysql (y en un framework llamado p4a) he querido ...
  #1 (permalink)  
Antiguo 03/03/2011, 08:23
 
Fecha de Ingreso: agosto-2005
Ubicación: Mérida, Venezuela
Mensajes: 732
Antigüedad: 18 años, 8 meses
Puntos: 7
duda con "migración" de consulta de my a pg

Saludos

Probando un sistemita para la gestión de menus de forma dinámica [0] que está para mysql (y en un framework llamado p4a) he querido pasar la estructura sql a postgresql, pero me he conseguido con un comportamiento diferente.

De entrada, para su uso en mysql se utiliza concat_ws, que no existe en postgresql, más en las listas de discusión se proponen implementarla cada quien la necesite, de donde obtuve[1], luego de haber buscado brevemente[2]

La estructura de las tablas es bien sencilla:
Código:
CREATE TABLE menu (
  id serial NOT NULL,
  parent_id int default NULL,
  name text,
  label text,
  position int default NULL,
  visible smallint default '1',
  access_level text,
  action text,
  param1 text,
  PRIMARY KEY  (id)
);

INSERT INTO menu (id, parent_id, name, label, position, visible, access_level, action, param1) VALUES
(1, NULL, 'admin', 'Admin', 1, 1, '10', NULL, NULL),
(2, 1, 'p4a_users', 'Users', 1, 1, '10', 'openMask', NULL),
(3, 1, 'p4a_menu_mask', 'Menu', 1, 1, '10', 'openMask', NULL),
(4, NULL, 'basicas', 'Básicas', 2, 1, '6', NULL, NULL),
(5, 4, 'agricola', 'Producción y Servicios Agrícolas', 2, 1, '6', NULL, NULL),
(6, 4, 'servicios', 'Servicios Públicos', 2, 1, '6', NULL, NULL),
(7, 6, 'electricidad', 'Electricidad', 2, 1, '6', 'openMask', NULL),
(8, 5, 'pvegetal', 'Producción Vegetal', 2, 1, '6', 'openMask', NULL);
;
En ambos casos, ejecuta la consulta:
Código:
SELECT concat_ws('->',c.label,b.label,a.label) 
FROM menu AS a 
LEFT JOIN menu AS b ON a.parent_id = b.id 
LEFT JOIN menu AS c ON b.parent_id = c.id
En mysql obtengo:
Código:
concat_ws('->',c.label,b.label,a.label)
Admin
Admin->Users
Admin->Menu
Básicas
Básicas->Producción y Servicios Agrícolas
Básicas->Servicios Públicos
Básicas->Servicios Públicos->Electricidad
Básicas->Producción y Servicios Agrícolas->Producción Vegetal
En postgresql:
Código:
concat_ws 
-----------
 
 
 
(3 filas)
Algún comentario?

[0]http://www.mechanicamente.it/content/view/15/8/
[1]http://archives.postgresql.org/pgsql-admin/2003-08/msg00042.php
[2]http://search.postgresql.org/search?m=1&q=concat_ws&l=&d=&s=
__________________
Gracias de todas todas
-----
Linux!

Etiquetas: concat_ws, join
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:19.