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

Varias primary key

Estas en el tema de Varias primary key en el foro de Bases de Datos General en Foros del Web. HOLA PRESISO Q ME DIGAN COMO DECLARAR VARIAS PRIMARY KEY EN UNA TABLA,gracias...
  #1 (permalink)  
Antiguo 17/02/2010, 20:19
Avatar de rodrigo791  
Fecha de Ingreso: noviembre-2009
Ubicación: Uruguay
Mensajes: 1.339
Antigüedad: 15 años
Puntos: 168
Varias primary key

HOLA PRESISO Q ME DIGAN COMO DECLARAR VARIAS PRIMARY KEY EN UNA TABLA,gracias
  #2 (permalink)  
Antiguo 17/02/2010, 20:24
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Varias primary key

Eso no existe.

Una PK es un campo o conjunto de campos que identifican unívocamente un registro en una tabla. Además, una PK genera un índice agrupado, que los DBMS usan para mantener el ordenamiento físico de la tabla. Te imaginarás entonces que no existe forma de hacer que una tabla se ordene físicamente de varias modos.

Lo que sí puede suceder es que existan otros campos definidos como UNIQUE, que crean índices UNIQUE y que actúan como claves alternativas, aunque no como PK.

Lo que sí puedes hacer es crear una PK compuesta de varios campos, que no es lo mismo que decir varias PK. Sigue siendo una sola.

Otra cosa que sí existe son las FK, pero eso es otro tema.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 17/02/2010, 20:27
Avatar de rodrigo791  
Fecha de Ingreso: noviembre-2009
Ubicación: Uruguay
Mensajes: 1.339
Antigüedad: 15 años
Puntos: 168
Respuesta: Varias primary key

Osea que lo que me decis es que no peudo declarar mas de una clave primaria pero si una unique, decime como era la sintaxis, gracias
  #4 (permalink)  
Antiguo 17/02/2010, 20:45
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Varias primary key

¿En qué DBMS?
La sintaxis a usar tiene algunas variaciones según que motor estés usando...

P.D.: Te sugiero repasar los conceptos de Modelo E-R, Modelo relacional y Bases de datos relacionales, para refrescar el tema de claves, que es primordial. Luego vas a tener problemas si esta idea no queda clara.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #5 (permalink)  
Antiguo 17/02/2010, 20:57
Avatar de rodrigo791  
Fecha de Ingreso: noviembre-2009
Ubicación: Uruguay
Mensajes: 1.339
Antigüedad: 15 años
Puntos: 168
Respuesta: Varias primary key

Mira estoy usando un server informix, en el q uso sql, el problema es cuando pongo para crear una foreign q esta en otra tabla como primaria y me da el siguiente error: Cannot find unique constraint or primary key on referenced table, espero q me ayudes
  #6 (permalink)  
Antiguo 17/02/2010, 21:35
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Varias primary key

Vamos en dos partes:
Es posible que ya tengas algún tutorial de SQL en Informix. En ese caso posiblemente ya sabes cómo se definen los índices UNIQUE.

En segundo lugar, el mensaje está diciendo que no puede crear la relación por alguna razón.
En general las razones por las que no puede definirse una FK son:
- Tipos incorrectos entre tablas. Los campos deben ser del mismo tipo (INTEGER, VARCHAR; DATE, etc.).
- Datos que no son del mismo rango (INT, SMALLINT, VARCHAR(x), lo que sea, pero iguales).
- Datos de cadenas de caracteres que no son del mismo CHARSET.
- Datos que no respetan la constraint (restricción), porque hay datos en el campo FK que no existen en la PK de origen.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #7 (permalink)  
Antiguo 17/02/2010, 22:48
Avatar de rodrigo791  
Fecha de Ingreso: noviembre-2009
Ubicación: Uruguay
Mensajes: 1.339
Antigüedad: 15 años
Puntos: 168
Respuesta: Varias primary key

tengo en una tabla q se llama materia idmateria como not null, serial y pk, despues en otra tabla llamada tiene, tengo una fk q llama a idmateria de la tabla materia, y despues tengo una tabla cursa q hago lo siguiente, te muestro parte del codigo , osea lo q importa: idmateria not null serial,primary key(idmateria), foreign key(idmateria)references materia(idmateria), el error me lo dice como q no encuentra la clave primaria de la tabla tiene supuestamente q es de la q estoy llamandola y me deja el cursor en "references materia(idmateria)", como q no lo encuentra, son mismo tipo todo, pero no se cual es el error, gracias otra vez
  #8 (permalink)  
Antiguo 18/02/2010, 05:17
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Varias primary key

Compara los datos.
Es muy probable que en CURSA.IDMATERIA haya un valor en que no exista en MATERIA.IDMATERIA.
En todo caso, ejecuta:
Código MySQL:
Ver original
  1. SELECT C.idmateria
  2. FROM cursa C LEFT JOIN materia M USING(idmateria)
  3. WHERE M.idmateria IS NULL;
Fíjate qué es lo que devuelve...
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Etiquetas: key
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 14:15.