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

Primary Key y Foreing Key

Estas en el tema de Primary Key y Foreing Key en el foro de PostgreSQL en Foros del Web. Buenas!!! mi pregunta va mas q todo a una simple explicacion de; a pesar q me se bien los conceptos de claves primarias y foraneas, ...
  #1 (permalink)  
Antiguo 22/10/2008, 13:12
Avatar de nelson0416  
Fecha de Ingreso: octubre-2008
Mensajes: 22
Antigüedad: 15 años, 6 meses
Puntos: 0
Pregunta Primary Key y Foreing Key

Buenas!!! mi pregunta va mas q todo a una simple explicacion de; a pesar q me se bien los conceptos de claves primarias y foraneas, quiero tener una explicacion mas sencilla acerca de como funcionan estas claves, es q tengo q crear una base de datos y estoy pegao en eso xq nose si todas las claves primarias de las tablas van con el mismo nombre o que exactamnt restringen las claves foraneas, etc etc.... espero q m ayuden..

De antemano muchas gracias!!!
  #2 (permalink)  
Antiguo 22/10/2008, 17:39
Avatar de Sergestux  
Fecha de Ingreso: agosto-2007
Ubicación: Tapachula
Mensajes: 1.218
Antigüedad: 16 años, 8 meses
Puntos: 20
Respuesta: Primary Key y Foreing Key

Por que no explicas lo que sabes, para tener una referencia sobre los conocimientos actuales que tienes
  #3 (permalink)  
Antiguo 23/10/2008, 06:00
Avatar de nelson0416  
Fecha de Ingreso: octubre-2008
Mensajes: 22
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: Primary Key y Foreing Key

Disculpa amigo nose si m expliq bien ... bueno pero para responderte te comento q se solo lo basico, por ejemplo q las primary key son las claves primarias de cada tabla en realidad lo q necesito saber de ella es como colocarla autoincrementable en postgresql... y de las claves foraneas si necesito toda la informacion posible que de verdad la q m den por esta via me servira mucho.... Gracias!!!
  #4 (permalink)  
Antiguo 23/10/2008, 12:47
Avatar de Sergestux  
Fecha de Ingreso: agosto-2007
Ubicación: Tapachula
Mensajes: 1.218
Antigüedad: 16 años, 8 meses
Puntos: 20
Respuesta: Primary Key y Foreing Key

Bueno los campos autoincrementables, en postgres se llaman seriales que lo que hacen en realidad es crearte una secuencia, si te fijas en la documentación nos dice que esto:
Código:
CREATE TABLE tablename (
    colname SERIAL
);
es igual esto:


Código:
 
CREATE SEQUENCE tablename_colname_seq; 
CREATE TABLE tablename (     colname integer NOT NULL DEFAULT nextval('tablename_colname_seq') ); 
ALTER SEQUENCE tablename_colname_seq OWNED BY tablename.colname;
Respecto a las llaves foráneas, estas se utilizan cuando te quieres asegurar que datos de tus tablas no apunten a referencias vacias, es decir, por ejemplo si tienes dos tablas:

empleados(codigo,nombre, edad... ciudad) y otra tabla de ciudad(codigo, nombre...)

En la tabla empleados en el campo ciudad solo vas a insertar el código de la ciudad que le corresponde en la tabla ciudades, pero para esto debes asegurarte que ese código que quieres insertar realmente exista en la tabla ciudades... es aca donde al crear la tabla de empleados, tienes la posibilidad de especificar que tu campo ciudad de la tabla empleados, es una llave foranea que corresponde al campo codigo de la tabla ciudad, incluso ahi mismo puedes especificar que pasa con tus empleados (de la ciudad que piensas eliminar) cuando eliminas una ciudad de la tabla ciudades.

Checate esta informacion de postgres sobre las llaves foraneas.
  #5 (permalink)  
Antiguo 23/10/2008, 13:40
Avatar de nelson0416  
Fecha de Ingreso: octubre-2008
Mensajes: 22
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: Primary Key y Foreing Key

Demasiado bueno amigo, ya lo del campo SERIAL lo habia implementado durante el dia y con la explicacion sobre las llaves foraneas ya lo capte sin problemas... De verdad muchisimas gracias por tu ayuda... Cualquier cosas estare escribiendo de nuevo... Saludos!!!
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 08:40.