Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > MySQL
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 13-07-2006
Arturo Arturo is offline
Miembro
 
Registrado: sep 2004
Posts: 91
Poder: 20
Arturo Va por buen camino
mysql no me permite agregar registros como duplicate entry..

saludos tengo un problema con mysql que no entiendo por que no me deja agregar registros en una tabla maestro/detalle, lo cual lo comprobe con mysql-front agregandole los regsitros: error de ejecucion sql 1062 respuesta de la bd duplicate entry '1' for key 1

Por tanto, ya no le aplico una primary key a mi tabla detalle, de lo cual modifique el script y quedando asi:
Código PHP:
CREATE TABLE `requision` (
  `
REQ_IDint(11NOT NULL default '0',
  `
REQ_FECHAdate default NULL,
  
PRIMARY KEY  (`REQ_ID`),
ENGINE=InnoDB DEFAULT CHARSET=latin1 COLLATE=latin1_spanish_ci;
  
  
CREATE TABLE `requision_det` (
  `
REQ_DET_IDint(11NOT NULL default '0', ---->(ya no hay Primary key)
  `
REQ_DET_ARTICULO int(11),
   KEY 
`REQ_DET_ID_IX` (`REQ_DET_ID`), -->un indice
  ) ENGINE=InnoDB DEFAULT CHARSET=latin1 COLLATE=latin1_spanish_ci;
  
  ALTER TABLE 
`requision_det`  --->y le aplique una foranea 
  ADD FOREIGN KEY (
`REQ_DET_ID`) REFERENCES `requision` (`REQ_ID`) ON DELETE CASCADE ON UPDATE CASCADE, 
estoy en esa incertidumbre q- tengo, por que no me habia sucedido esto..
hice una pruebas y ya me permite agregar registros a mi detalle pero es bueno, recomendado... que hago
gracias.
Responder Con Cita
  #2  
Antiguo 24-07-2006
Avatar de AzidRain
[AzidRain] AzidRain is offline
Miembro Premium
 
Registrado: sep 2005
Ubicación: Córdoba, Veracruz, México
Posts: 2.914
Poder: 21
AzidRain Va camino a la fama
Recordando un poco de teoría veamos que:

Una clave primaria es la que identifica de manera unívoca a una tupla (fila o registro), es decir, no puede haber dos claves iguales. Por ejemplo: Si tenemos una entidad coches, sus propiedades podrian ser: marca, color, placas. Para identificar cada coche no podriamos utilizar ni marca ni color porque si puede haber varios coches de la misma marca o color o incluso de ambos. Sin embargo, la placa no puede repetirse, por lo que en este caso nuestra clave primaria seria esta. Hay casos en los que la clave primaria se puede componer de varios campos, por ejemplo: una factura tiene folio y numero de serie. Para identificar cada una la clave primaria se compondría por el folio Y la serie ya que pueden existir folios iguales con distinta serie.

En tu caso particular tenias erroneamente como clave primaria en la tabla de talle ID del maestro. Como ya vimos una clave primaria no puede repetirse, y en el caso de una tabla detalle, sabemos que es precisamente lo que sucede: debe repetirse tantas filas como se requiera para cada fila única de la tabla maestra. Sin embargo, aunque funciona bien como lo hiciste (sin clave primaria) ¿Como haces para identificar cada partida de forma individual? En este caso seria útil que añadieras un campo Num. o Num_partida en la tabla detalle y formaras la clave primaria con la combinacion de los campos ID+Num_Partida, de manera que solo pueda existir una combinacion para cada fila.

A mi me pasaba lo mismo cuando no acostumbraba hacer mucho análisis de datos antes de programar y terminé por mejor dedicarle mas tiempo a este análisis previo: definir entidades, propiedades, relaciones, etc. de manera que el código se hace mucho más sencillo y evitas estos problemas.

Te recomiendo que leas algun material sobre el Modelo E-R y Bases de datos relacionales. Si le interesa al foro en unos días posterare por aqui un manual de MySQL muy bueno que inicia desde esas bases.

SAludos y perdon por la extension...
__________________
AKA "El animalito" ||Cordobés a mucha honra||
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
como agregar bd de mysql con inno setup gilberto_1126 SQL 1 25-11-2005 01:13:08
Error (Duplicate Entry) romansiux Varios 4 31-05-2005 02:17:28
como respaldar registros en mysql poliburro MySQL 2 08-09-2004 01:48:32
agregar registros a un fichero txt @-Soft Conexión con bases de datos 6 05-05-2004 11:02:13
Agregar registros como en Clipper JorgeBec Varios 3 23-04-2004 18:10:53


La franja horaria es GMT +2. Ahora son las 08:43:37.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi