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

ayuda

Estas en el tema de ayuda en el foro de PostgreSQL en Foros del Web. hola soy un novato manejando postgres y necesito saber como es la sentencia para borra un dato que tiene una clave primaria, pense que era ...
  #1 (permalink)  
Antiguo 28/09/2010, 13:01
Avatar de Sougiro  
Fecha de Ingreso: octubre-2007
Mensajes: 136
Antigüedad: 16 años, 6 meses
Puntos: 1
ayuda

hola soy un novato manejando postgres y necesito saber como es la sentencia para borra un dato que tiene una clave primaria, pense que era como se hacia en oracle, pero no.

por favor alguien ayudeme.

gracias.
  #2 (permalink)  
Antiguo 28/09/2010, 13:19
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 2 meses
Puntos: 360
Respuesta: ayuda

Es como en oracle.

Como lo estas tratando de hacer?
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #3 (permalink)  
Antiguo 28/09/2010, 13:41
Avatar de Sougiro  
Fecha de Ingreso: octubre-2007
Mensajes: 136
Antigüedad: 16 años, 6 meses
Puntos: 1
Respuesta: ayuda

lo estoy tratando de hacer asi:

delete from referencia_tipo_plomo where id_ref_tipo_plomo=$id_ref_borrar

solo que me falta el cascade constraint pero no se donde lo pongo
  #4 (permalink)  
Antiguo 28/09/2010, 13:50
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 2 meses
Puntos: 360
Respuesta: ayuda

Al igual que en oracle, al momento de definir la tabla que tiene la foreign key de otra tabla debe especificarse.

Cita:
CREATE TABLE order_items (
product_no integer REFERENCES products ON DELETE RESTRICT,
order_id integer REFERENCES orders ON DELETE CASCADE,
quantity integer,
PRIMARY KEY (product_no, order_id)
);
Tomado de la doc. oficial de postgresql

En oracle funciona igual.
saludos
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #5 (permalink)  
Antiguo 28/09/2010, 14:21
Avatar de Sougiro  
Fecha de Ingreso: octubre-2007
Mensajes: 136
Antigüedad: 16 años, 6 meses
Puntos: 1
Respuesta: ayuda

oye mi amigo no me funciono lo trate de hacer asi.

id_ref_tipo_plomo numeric REFERENCES unidad_de_medida on delete cascade where id_ref_tipo_plomo=14;

gracias por todo.
  #6 (permalink)  
Antiguo 28/09/2010, 14:27
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 2 meses
Puntos: 360
Respuesta: ayuda

loco vos estas muy perdido.

Mira el ejemplo que te coloco. Para que el borrado sea en cascada, previamente antes de crear las tablas, se deben declarar de esta forma. Esto no funciona sobre consultas, es sobre la estructura de la tabla.

En cualquier DBMS es el mismo concepto y casi la misma sintaxis.
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #7 (permalink)  
Antiguo 28/09/2010, 14:57
Avatar de Sougiro  
Fecha de Ingreso: octubre-2007
Mensajes: 136
Antigüedad: 16 años, 6 meses
Puntos: 1
Respuesta: ayuda

aaaaaahhhhhhh con sabia razon tienes toda, jejeje el problema es que no puedo borrar la tabla y volver a crearla, estoy programando sobre la marcha de otro tipo, necesito es borrar un dato solo uno, sino que este dato tiene una clave primaria y otra foranea, y pues me dice el postgres que al tratar de hacer eso violo la integridad.

te agradesco mucho la ayuda, porfa dime la sintaxis de como borrar solo un dato.

por que en oracle es:

delete from tablita where id=id cascade constraint;
  #8 (permalink)  
Antiguo 28/09/2010, 15:39
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 2 meses
Puntos: 360
Respuesta: ayuda

Cita:
por que en oracle es:

delete from tablita where id=id cascade constraint;
No suena.

Como no me sonó, lo he probado en oracle y no funciona.

Eso iría en contra de la seguridad e integridad de una base de datos.

revisa bien el tema sougiro.

saludos
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #9 (permalink)  
Antiguo 29/09/2010, 13:55
 
Fecha de Ingreso: septiembre-2010
Mensajes: 38
Antigüedad: 13 años, 7 meses
Puntos: 0
Respuesta: ayuda

yo cuand creo las tabla no las defino en cascada...y lo que hago es eliminar uno x uno las tablas que hacen referencia al registro que quieres eliminar...

Etiquetas: Ninguno
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 19:47.