FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
||||
|
||||
mysql + tabla con 2 keys
Hola.
Supongo que sera una tonteria, pero siempre he estado usando msaccess y otro tipo de BD y ahora con mysql me encuentro estos errores. He hecho una tabla y necesito que tenga 2 keys, a modo de ID e ID2, es decir que pueda haber varios registros que repitan el mismo ID o ID2. Pero al poner en la tabla ambos campos como primary key, al intentar insertar datos me sale un mensaje de duplicidad de datos (ojo el mensaje me sale en c++ builder). Como podria solucionarlo? GRACIAS
__________________
Un saludo Antonio |
#2
|
||||
|
||||
Cita:
Eso debe suceder por que el valor de Id se repite en Id2, verifica los datos que intentas grabar Saludos
__________________
Conoce mi blog http://www.edgartec.com |
#3
|
||||
|
||||
No me he explicado bien...
Tengo una tabla...: ID_Cliente / Numero_Cuenta_Bancaria Yo quiero que los campos claves sean los 2, porque un cliente puede tener varias cuentas...con lo que si pongo solo ese campo clave no me dejaria. Y que aunque no es probable, clientes distintos pudieran tener la misma cuenta. Quiero datos como estos: 001 / 1234 001 / 1235 002 / 1235 Ahora creo que me explico mejor... ¿Pero como podria hacer esto?
__________________
Un saludo Antonio |
#4
|
||||
|
||||
Nadie sabe como puedo poner esos dos campos como clave?
estoy buscando por internet, pero no me sale nada al respecto o no se bien como buscarlo... Gracias
__________________
Un saludo Antonio |
#6
|
||||
|
||||
Nada...no funciona!!!
Vamos a ver...me sigo explicando: Tengo la tabla con 3 campos: http://www.geocities.com/antonio_garcia_web/1.bmp Si intento hacer esto:
Me sale el siguiente error en builder c++ 6: http://www.geocities.com/antonio_garcia_web/2.bmp Pero si lo meto desde la BD, sin problemas: http://www.geocities.com/antonio_garcia_web/3.bmp
__________________
Un saludo Antonio Última edición por alt126 fecha: 13-06-2008 a las 13:44:35. |
#7
|
||||
|
||||
nadie puede orientarme un poco??
estoy haciendo la aplicacion...pero ese fallo no lo puedo dejar ahi...
__________________
Un saludo Antonio |
#8
|
||||
|
||||
¿Qué usas para administrar tus bases? Poco puede deducirse de una imagen, pero da la impresión de que tienes tanto a ID_Cliente como a Numero_cuenta como llaves primarias, lo cual sería erróneo porque la unicidad la logras con la combinación de ambas y no cada una por su cuenta.
Haz una consulta
para obtener la definición de la tabla y pega aquí el resultado. // Saludos |
#9
|
||||
|
||||
El resultado de la consulta es:
El programa que utilizo es el navicat 8 y tambien phpadmin. Eso es justamente lo que quiero...tener ambos dos campos como claves, para no poder repetir los 2 valores, pero si repetir valores en cada campo. Esto no se como hacerlo!!!! GRACIAS
__________________
Un saludo Antonio |
#10
|
||||
|
||||
Esto no tiene pies ni cabeza
En tu definición de tabla, ciertamente sobra un índice, puedes omitir el unique y quedarte con el primary. Aun así, no debería fallar. Me parece raro esto: Dices que si haces
obtienes este error: http://www.geocities.com/antonio_garcia_web/2.bmp Pero el mensaje del error menciona: Cita:
http://www.geocities.com/antonio_garcia_web/3.bmp // Saludos |
#11
|
||||
|
||||
no no no...quizas es que estuve haciendo pruebas...y puse fotos de una prueba y comente un ejemplo de otra.
En la tabla tengo:
aqui puedes ver todo el proceso -> video Gracias por intentar ayudarme...es algo que necesito que funcione y no se como hacerlo!!
__________________
Un saludo Antonio |
#12
|
||||
|
||||
Hola alt126, por lo que he visto estas intentando ejecutar dos veces tu insert.
como te dice Roman, si pones a los dos campos como primary key, no podras tener un registro que tenga un cliente y cuenta bancaria repetidos y en tu codigo estas haciendo eso, registras el mismo cliente y una misma cuenta para ese cliente. Yo veo una relación de 1 a muchos entre tu tabla clientes y cuentas bancarias, donde el id_cliente de tu tabla cuenta bancaria llegaría a ser una llave foranea (foreing key), ahora también dices que pueden repetirse las cuentas bancarias, si es así, entonces es una relación muchos a muchos, ahí necesitas una tabla intermedia entre tu tabla clientes y cuentas bancarias en dicha tabla id_cliente, cuenta_bancaria, seran tus llaves foraneas. Saluditos
__________________
Disfruten cada minuto de su vida a lado de sus seres queridos como si fuese el ultimo, uno nunca sabe lo que puede pasar. |
#13
|
||||
|
||||
Lo que decias es completamente cierto...y ya esta solucionado.
No sabia que Cita:
Lo he probado y funciona perfectamente. Sobre la BD, la idea es que un mismo cliente puede tener varias cuentas de banco, es decir que en la misma tabla puede aparecer varias veces el mismo cliente, por lo que no se puede poner solo el cliente como key, tiene que ser la combinacion de cliente y cuenta...eso si que no se repite. No creo necesitar una tabla intermedia, ya que tengo una tabla clientes y luego esta tabla que es la que guarda las cuentas de cada cliente. En access lo tenia asi y funcionaba, pero aqui me daba problemas supongo que por el active=true. Gracias...por ahora todo correcto
__________________
Un saludo Antonio |
#14
|
||||
|
||||
Cita:
// Saludos |
#15
|
||||
|
||||
Gracias por la info!!!
__________________
Un saludo Antonio |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
hot keys | alfil123 | OOP | 3 | 25-04-2007 01:50:16 |
Sending Keys | Xianto | API de Windows | 0 | 13-07-2006 10:00:32 |
Códigos escape y virtual Keys Codes | Cabanyaler | API de Windows | 2 | 05-06-2006 16:13:13 |
Foreign keys desactivadas | JCDiaz999 | Firebird e Interbase | 2 | 31-05-2006 13:09:16 |
Duda acerca de las keys | joanajj | Firebird e Interbase | 5 | 20-05-2006 21:23:28 |
|