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

Sentencias SQL en Postgres

Estas en el tema de Sentencias SQL en Postgres en el foro de PostgreSQL en Foros del Web. Saludos Mi problema es el siguiente: Resulta que tengo Postgres v9 instalado en windows, y una aplicación en PHP Migre la BD de MySQL a ...
  #1 (permalink)  
Antiguo 08/03/2011, 19:18
 
Fecha de Ingreso: diciembre-2009
Ubicación: Guayaquil
Mensajes: 16
Antigüedad: 15 años
Puntos: 1
Sentencias SQL en Postgres

Saludos

Mi problema es el siguiente:
Resulta que tengo Postgres v9 instalado en windows, y una aplicación en PHP

Migre la BD de MySQL a Postgress y todo bien. La clase de conexion al parecer funciona bien el incoveniente es cuando mando a ejecutar los querys normalmente ejemplo 1:

SELECT nombre FROM persona WHERE id_persona = '1'


Me dice que hay un error pero en realidad cuando envío el query de la siguiente forma.

ejemplo 2:

SELECT nombre FROM nombre_bd.persona WHERE id_persona = '1'

Si funca, si fueran pocas cosas las de cambiar lo haría tranquilamente pero mi aplicación está desarrollada a manera de framework y es bastante (tedioso) odioso acomodarme a esa forma cuando he visto en internet muchos ejemplos
que funcionan tal y cual el ejemplo 1

A que se puede deber, alguien me pueda ayudar urgente!.
  #2 (permalink)  
Antiguo 09/03/2011, 07:12
 
Fecha de Ingreso: agosto-2005
Ubicación: Mérida, Venezuela
Mensajes: 732
Antigüedad: 19 años, 3 meses
Puntos: 7
Respuesta: Sentencias SQL en Postgres

Has mirado la documentación oficial?
__________________
Gracias de todas todas
-----
Linux!
  #3 (permalink)  
Antiguo 09/03/2011, 08:09
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 10 meses
Puntos: 360
Respuesta: Sentencias SQL en Postgres

Tus tablas las tienes en el schema public? hacen parte de otro schema?
Haz cambiado el numbre de public en tu base de datos?
Esto en una configuración normal no debería ser un problema.

Cuentanos un poco desde donde haces las pruebas, la estructura de tu BD..


saludos
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #4 (permalink)  
Antiguo 09/03/2011, 10:39
 
Fecha de Ingreso: diciembre-2009
Ubicación: Guayaquil
Mensajes: 16
Antigüedad: 15 años
Puntos: 1
Respuesta: Sentencias SQL en Postgres

Ok para empezar si soy nuevo en Posgtres y ahora que lo mencionas sobre los esquemas se confirman mis dudas

Como les dije la estructura de mi BD y la aplicación funcionan excelentemente bien bajo MySQL

Mi esquema en Postgres es ej: BDPrueba y si me di cuenta de otro llamado public que se crea por defecto pero lo eliminé que debería hacer o modificar para que funcione bien..
  #5 (permalink)  
Antiguo 09/03/2011, 10:55
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 10 meses
Puntos: 360
Respuesta: Sentencias SQL en Postgres

volver a crear el schema public.

Cuando estas sobre public, no es necesario anteponer ni el nombre de la base de datos, ni el del esquema como tal (si tienes mas).

create una base nueva y la importación de lo que ya tienes, la haces sobre public.

saludos
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #6 (permalink)  
Antiguo 09/03/2011, 11:42
 
Fecha de Ingreso: diciembre-2009
Ubicación: Guayaquil
Mensajes: 16
Antigüedad: 15 años
Puntos: 1
Respuesta: Sentencias SQL en Postgres

Ok, gracias mira hice 2 cosas de las cuales hice lo siguiente:

Primera
-Cree la BD nueva e importé la BD, utilizo Migration Wizard propio de Postgres lo que no me permite es seleccionar el esquema público al parecer toma como un solo esquema la BD de Mysql y crea un esquema automatico con el nombre de la BD
- De todos modos migré..

Segundo
-Que al revisar en Postgres otorgué todos los privilegios y le cambié el nombre al esquema BDnombre por el de Public
- Al parecer sirvió porque antes no podía hacer una consulta limpia (sin anteponer el esquema al lado del nombre de la tabla) en el mismo Postgres y ahora sí
- Ahora al parecer dentro de Postgres está solucionado como quería pero con la aplicacion sigo teniendo el mismo problema necesito anteponer el esquema

1.- He hecho algo mal?
2.- Que puedo hacer?
  #7 (permalink)  
Antiguo 09/03/2011, 12:21
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 10 meses
Puntos: 360
Respuesta: Sentencias SQL en Postgres

Prueba lo siguiente:

1. Migra la base de datos al esquema que crea el asistente de migración.
2. Haz un backup del esquema unicamente.
3. Sobre el schema public, importa el backup que hiciste del schema.
4. Borra el esquema que te creó el asistente de migración.

Si utilizas pgadmin solo es darle click rderecho sobre el esquema y sacar el backup. La imporación es de la misma forma.

Puede ser que el schema public como tal, tenga otros atriburtos que no toma si haces un renombramiento.

Nos cuentas como te va.

saludos
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #8 (permalink)  
Antiguo 09/03/2011, 13:09
 
Fecha de Ingreso: diciembre-2009
Ubicación: Guayaquil
Mensajes: 16
Antigüedad: 15 años
Puntos: 1
Respuesta: Sentencias SQL en Postgres

bueno trabajaba con phpPgAdmin aunque hago lo que me dices con PgAdmin y si me exporta pero al hacer el Restore sobre Public me manda error

Probé cambiando los privilegios y otra vez el nombre desde el PgAdmin pero nada

La verdad no puedo resolverlo...
  #9 (permalink)  
Antiguo 09/03/2011, 13:17
 
Fecha de Ingreso: agosto-2005
Ubicación: Mérida, Venezuela
Mensajes: 732
Antigüedad: 19 años, 3 meses
Puntos: 7
Respuesta: Sentencias SQL en Postgres

Exporta la BD completa desde phppgadmin, en formato SQL, luego edita el script con editor de texto plano (en Linux, con gedit o preferiblemente con vim) y sustituye el nombre del esquema creado por "public".

Fíjate de borrar las líneas que tengan que ver con la creación y uso del otro esquema.

Crea nuevamente una BD, e importas el script .sql

... y nos cuentas
__________________
Gracias de todas todas
-----
Linux!
  #10 (permalink)  
Antiguo 09/03/2011, 13:22
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 10 meses
Puntos: 360
Respuesta: Sentencias SQL en Postgres

Cita:
pero al hacer el Restore sobre Public me manda error
Que error te manda?
Si la importas sobre otro esquema... te funciona?
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #11 (permalink)  
Antiguo 09/03/2011, 13:25
 
Fecha de Ingreso: diciembre-2009
Ubicación: Guayaquil
Mensajes: 16
Antigüedad: 15 años
Puntos: 1
Respuesta: Sentencias SQL en Postgres

Si ya se importa bien volví a realizar los mismos pasos probando y ya importa bien
Ahora como en un principio.. sigo sin resolver que ejecute las sentencias sin anteponer el esquema.

A pesar de que en la BD de Postgres ya esté todo en public directamente gracias al PgAdmin.


Postgres me está dejando un desasón a pesar de los beneficios que le conozco.
  #12 (permalink)  
Antiguo 09/03/2011, 13:29
 
Fecha de Ingreso: diciembre-2009
Ubicación: Guayaquil
Mensajes: 16
Antigüedad: 15 años
Puntos: 1
Respuesta: Sentencias SQL en Postgres

Cita:
Iniciado por cacr Ver Mensaje
Exporta la BD completa desde phppgadmin, en formato SQL, luego edita el script con editor de texto plano........

... y nos cuentas
Si efectivamente eso fue una de las primeras cosas que realicé y no pude resolverlo, es más bajo Dw me permite cambiar una palabra que se repita en un archivo y le cambie el nombre del esquema por public pero tampoco funcionó, me mandaba un error justo en la línea donde tenía que empezar a insertar los registros..
  #13 (permalink)  
Antiguo 09/03/2011, 14:17
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 10 meses
Puntos: 360
Respuesta: Sentencias SQL en Postgres

Cita:
Postgres me está dejando un desasón a pesar de los beneficios que le conozco.
Creeme que si algo no funciona es problema de nosotros los usuarios

Ese motor está muy bien hecho.

La verdad, nunca he sido amigo de los asistentes de migración.... por ahí puede estar el problema.

La base de datos es muy grande?
Cuantas tablas? Triggers, funciones?

si es posible, yo las haría manualmente.
Para los registros, no tendría problema, ya que eso es sql estandar.

saludos
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #14 (permalink)  
Antiguo 09/03/2011, 14:17
 
Fecha de Ingreso: diciembre-2009
Ubicación: Guayaquil
Mensajes: 16
Antigüedad: 15 años
Puntos: 1
Respuesta: Sentencias SQL en Postgres

Dentro de los errores de la importación como script me sale lo siguiente:


ERROR: error de sintaxis en o cerca de «1»
LINE 656: 1 1 Natación Salesianos Club t
^

********** Error **********

ERROR: error de sintaxis en o cerca de «1»
SQL state: 42601
Character: 19926


La verdad me está tomando tiempo, es un buen proyecto funciona excelente bajo MySQL pero lo requieren en Postgres y no le encuentro solución...
  #15 (permalink)  
Antiguo 09/03/2011, 15:29
 
Fecha de Ingreso: diciembre-2009
Ubicación: Guayaquil
Mensajes: 16
Antigüedad: 15 años
Puntos: 1
Respuesta: Sentencias SQL en Postgres

Cita:
Iniciado por huesos52 Ver Mensaje
Creeme que si algo no funciona es problema de nosotros los usuarios

Ese motor está muy bien hecho......

Hay alguna manera de decirle a Postgres que no cree Esquemas para utilizar la BD directamente?
  #16 (permalink)  
Antiguo 09/03/2011, 15:34
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 10 meses
Puntos: 360
Respuesta: Sentencias SQL en Postgres

Es que no es postgres quien crea el schema. Es el asistente de migración.

La solución puede estar mas por ese lado. Alguna orden que le des al asistente.
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #17 (permalink)  
Antiguo 09/03/2011, 16:06
 
Fecha de Ingreso: agosto-2005
Ubicación: Mérida, Venezuela
Mensajes: 732
Antigüedad: 19 años, 3 meses
Puntos: 7
Respuesta: Sentencias SQL en Postgres

Dice que el error está en la línea 656, podrías pegar un trozo de lo que hay en el script? quizás un par de líneas antes y un par después?
__________________
Gracias de todas todas
-----
Linux!

Etiquetas: php, postgres
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.
Tema Cerrado

SíEste tema le ha gustado a 1 personas




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