RE: Consulta foreign key
De: Hellmuth Vargas [mailto:hiv...@gmail.com] Enviado el: miércoles, 24 de marzo de 2021 10:47 Para: Romero, Fernando CC: Jaime Casanova ; pgsql-es-ay...@postgresql.org Asunto: Re: Consulta foreign key Hola Fernando Jaime ahi estuve mirando mas a detalle, tiene relaciones que no están dentro del rango de fecha que quiero eliminar, tendría que deshabilitar la foreign key? Pues supongo que el foreign esta garantizado la consistencia de la información: si esta "brincando" es porque hay información relacionada (si esta bien implementado) , una suposición, es que la tabla logpack_sheetorderhistory es un histórico que puede tener movimientos anteriores al rango de fechas que se pretende eliminar en la tabla logpack_orderstatehistory Debería sacar los registros relacionadas entre las tablas y construir el delete basándose en la clave primaria/clave foránea más bien: La consulta sugerida seria algo como: select a.* from logpack_orderstatehistory as a join logpack_sheetorderhistory as b on a.id = b.id -- supongo que la columna relacionada en logpack_sheetorderhistory es id where a.created BETWEEN '2019-01-01' AND '2019-12-31' -- Cordialmente, Ing. Hellmuth I. Vargas S. Gracias por tu respuesta, esa consulta me devolvió los registros. Esos registros tendría que borrar para que después me deje eliminar los registros de la tabla anterior no? Saludos “El contenido del presente mensaje (y sus anexos) es privado, confidencial y de exclusivo uso para el destinatario referenciado; es de público conocimiento que las comunicaciones por medio de Internet no permiten asegurar ni garantizar la confidencialidad de los mensajes transmitidos, así como tampoco su integridad o su correcta recepción; es por ello que SOFSE no se responsabiliza de posibles perjuicios derivados de la captura, incorporaciones de virus o cualquier otra manipulación efectuada por terceros. Las opiniones expresadas en este mensaje y en los archivos adjuntos son propias del remitente y no representan la opinión o políticas de SOFSE, salvo que se diga expresamente y el remitente se encuentre autorizado para ello”
Re: Consulta foreign key
Hola Fernando Jaime ahi estuve mirando mas a detalle, tiene relaciones que no están > dentro del rango de fecha que quiero eliminar, tendría que deshabilitar la > foreign key? > Pues supongo que el foreign esta garantizado la consistencia de la información: si esta "brincando" es porque hay información relacionada (si esta bien implementado) , una suposición, es que la tabla logpack_sheetorderhistory es un histórico que puede tener movimientos anteriores al rango de fechas que se pretende eliminar en la tabla logpack_orderstatehistory Debería sacar los registros relacionadas entre las tablas y construir el delete basándose en la clave primaria/clave foránea más bien: La consulta sugerida seria algo como: select a.* from logpack_orderstatehistory as a join logpack_sheetorderhistory as b on a.id=b.id -- supongo que la columna relacionada en logpack_sheetorderhistory es id where a.created BETWEEN '2019-01-01' AND '2019-12-31' -- Cordialmente, Ing. Hellmuth I. Vargas S.
RE: Consulta foreign key
-Mensaje original- De: Jaime Casanova [mailto:jcasa...@systemguards.com.ec] Enviado el: miércoles, 24 de marzo de 2021 03:26 Para: Romero, Fernando CC: pgsql-es-ay...@postgresql.org Asunto: Re: Consulta foreign key On Tue, Mar 23, 2021 at 10:03 PM Romero, Fernando wrote: > > Si chequeo el campo id al que hace referencia en ese rango de fechas > no tiene datos > > select id from logpack_sheetorderhistory where created BETWEEN > '2019-01-01' AND '2019-12-31'; > Lo que deberías estar chequeando es: SELECT * FROM logpack_sheetorderhistory WHERE id = 14470448; Es muy probable que simplemente ese registro no esté en el mismo rango de fechas. Ahora, pensando un poco más allá, el problema podría ser el tipo de dato. Si created es un timestamp el rango de fechas que estas usando se completa así: BETWEEN '2019-01-01 00:00:00' AND '2019-12-31 00:00:00'. Es decir, la fecha automáticamente completa las horas a la medianoche así que tu criterio de busqueda debería ser: BETWEEN '2019-01-01' AND '2019-12-31 23:59.59.99' -- Jaime Casanova Director de Servicios Profesionales SYSTEMGUARDS - Consultores de PostgreSQL Jaime ahi estuve mirando mas a detalle, tiene relaciones que no están dentro del rango de fecha que quiero eliminar, tendría que deshabilitar la foreign key? Saludos “El contenido del presente mensaje (y sus anexos) es privado, confidencial y de exclusivo uso para el destinatario referenciado; es de público conocimiento que las comunicaciones por medio de Internet no permiten asegurar ni garantizar la confidencialidad de los mensajes transmitidos, así como tampoco su integridad o su correcta recepción; es por ello que SOFSE no se responsabiliza de posibles perjuicios derivados de la captura, incorporaciones de virus o cualquier otra manipulación efectuada por terceros. Las opiniones expresadas en este mensaje y en los archivos adjuntos son propias del remitente y no representan la opinión o políticas de SOFSE, salvo que se diga expresamente y el remitente se encuentre autorizado para ello”
RE: Consulta foreign key
-Mensaje original- De: Jaime Casanova [mailto:jcasa...@systemguards.com.ec] Enviado el: miércoles, 24 de marzo de 2021 03:26 Para: Romero, Fernando CC: pgsql-es-ay...@postgresql.org Asunto: Re: Consulta foreign key On Tue, Mar 23, 2021 at 10:03 PM Romero, Fernando wrote: > > Si chequeo el campo id al que hace referencia en ese rango de fechas > no tiene datos > > select id from logpack_sheetorderhistory where created BETWEEN > '2019-01-01' AND '2019-12-31'; > Lo que deberías estar chequeando es: SELECT * FROM logpack_sheetorderhistory WHERE id = 14470448; Es muy probable que simplemente ese registro no esté en el mismo rango de fechas. Ahora, pensando un poco más allá, el problema podría ser el tipo de dato. Si created es un timestamp el rango de fechas que estas usando se completa así: BETWEEN '2019-01-01 00:00:00' AND '2019-12-31 00:00:00'. Es decir, la fecha automáticamente completa las horas a la medianoche así que tu criterio de busqueda debería ser: BETWEEN '2019-01-01' AND '2019-12-31 23:59.59.99' -- Jaime Casanova Director de Servicios Profesionales SYSTEMGUARDS - Consultores de PostgreSQL Antes me habia tira otro error con otro id, borre ese id y cuando borro el id que me da error me vuelve a tirar otro y el id que me tira no esta en el rango de fecha que quiero borrar Saludos “El contenido del presente mensaje (y sus anexos) es privado, confidencial y de exclusivo uso para el destinatario referenciado; es de público conocimiento que las comunicaciones por medio de Internet no permiten asegurar ni garantizar la confidencialidad de los mensajes transmitidos, así como tampoco su integridad o su correcta recepción; es por ello que SOFSE no se responsabiliza de posibles perjuicios derivados de la captura, incorporaciones de virus o cualquier otra manipulación efectuada por terceros. Las opiniones expresadas en este mensaje y en los archivos adjuntos son propias del remitente y no representan la opinión o políticas de SOFSE, salvo que se diga expresamente y el remitente se encuentre autorizado para ello”
Re: Consulta foreign key
On Tue, Mar 23, 2021 at 10:03 PM Romero, Fernando wrote: > > Si chequeo el campo id al que hace referencia en ese rango de fechas no tiene > datos > > select id from logpack_sheetorderhistory where created BETWEEN '2019-01-01' > AND '2019-12-31'; > Lo que deberías estar chequeando es: SELECT * FROM logpack_sheetorderhistory WHERE id = 14470448; Es muy probable que simplemente ese registro no esté en el mismo rango de fechas. Ahora, pensando un poco más allá, el problema podría ser el tipo de dato. Si created es un timestamp el rango de fechas que estas usando se completa así: BETWEEN '2019-01-01 00:00:00' AND '2019-12-31 00:00:00'. Es decir, la fecha automáticamente completa las horas a la medianoche así que tu criterio de busqueda debería ser: BETWEEN '2019-01-01' AND '2019-12-31 23:59.59.99' -- Jaime Casanova Director de Servicios Profesionales SYSTEMGUARDS - Consultores de PostgreSQL
Consulta foreign key
Hola como estan, consulto por un tema de foreign key ya que algo se me esta escapando. Estoy borrado una tabla entre fecha me tiro violacion de contrainst porque hace referencia a otra tabla, fui a esa tabla y borre las misma fecha, cuando vuelvo a la tabla me vuelve a tirar error deviolacion de constraints con otro id. => delete from logpack_orderstatehistory where created BETWEEN '2019-01-01' AND '2019-12-31'; ERROR: update or delete on table "logpack_orderstatehistory" violates foreign key constraint "logpack_sheetorderhi_order_state_history__dfe8dbe1_fk_logpack_o" on table "logpack_sheetorderhistory" DETAIL: Key (id)=(13388177) is still referenced from table "logpack_sheetorderhistory". => delete from logpack_sheetorderhistory where created BETWEEN '2019-01-01' AND '2019-12-31'; DELETE 6557673 => delete from logpack_orderstatehistory where created BETWEEN '2019-01-01' AND '2019-12-31'; ERROR: update or delete on table "logpack_orderstatehistory" violates foreign key constraint "logpack_sheetorderhi_order_state_history__dfe8dbe1_fk_logpack_o" on table "logpack_sheetorderhistory" DETAIL: Key (id)=(14470448) is still referenced from table "logpack_sheetorderhistory". Si chequeo el campo id al que hace referencia en ese rango de fechas no tiene datos select id from logpack_sheetorderhistory where created BETWEEN '2019-01-01' AND '2019-12-31'; id (0 rows) Que error estoy cometiendo? Saludos y gracias "El contenido del presente mensaje (y sus anexos) es privado, confidencial y de exclusivo uso para el destinatario referenciado; es de p?blico conocimiento que las comunicaciones por medio de Internet no permiten asegurar ni garantizar la confidencialidad de los mensajes transmitidos, as? como tampoco su integridad o su correcta recepci?n; es por ello que SOFSE no se responsabiliza de posibles perjuicios derivados de la captura, incorporaciones de virus o cualquier otra manipulaci?n efectuada por terceros. Las opiniones expresadas en este mensaje y en los archivos adjuntos son propias del remitente y no representan la opini?n o pol?ticas de SOFSE, salvo que se diga expresamente y el remitente se encuentre autorizado para ello"