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

Insertar datos en tabla Mysql

Estas en el tema de Insertar datos en tabla Mysql en el foro de Mysql en Foros del Web. Hola: Tengo una tabla que tiene una llave foránea, al momento de insertar datos desde mi página web pues se debe de cambiar el número ...
  #1 (permalink)  
Antiguo 02/04/2007, 19:47
 
Fecha de Ingreso: marzo-2007
Mensajes: 163
Antigüedad: 17 años, 1 mes
Puntos: 0
Pregunta Insertar datos en tabla Mysql

Hola:

Tengo una tabla que tiene una llave foránea, al momento de insertar
datos desde mi página web pues se debe de cambiar el número del campo
que es la llave foránea, pero no se como hacerle para que cambie
automáticamente sin poner el número que sigue de forma manual.

Espero puedan ayudarme.
  #2 (permalink)  
Antiguo 02/04/2007, 22:14
 
Fecha de Ingreso: abril-2007
Ubicación: Chile
Mensajes: 27
Antigüedad: 17 años
Puntos: 0
Re: Insertar datos en tabla Mysql

Hola, no entendí muy bien el problema, pero tengo entendido que eso se cambiaría de la tabla que tiene la llave primaria, que es la foránea en tu tabla. Si quieres que cambie automaticamente este valor, hay un atributo que se llama auto_increment, debes ponerle a esta llave que sea de ese tipo, así cambiara automaticamente el valor.

Más detalles sobre auto_increment aquí:

dev.mysql.com/doc/refman/5.0/es/example-auto-increment.html

Saludos
  #3 (permalink)  
Antiguo 03/04/2007, 17:44
 
Fecha de Ingreso: marzo-2007
Mensajes: 163
Antigüedad: 17 años, 1 mes
Puntos: 0
Re: Insertar datos en tabla Mysql

Hola DarkMaurice:

No puedo ponerle auto_increment porque ya tengo la llave primaria en esa tabla como auto_increment y no puede haber dos atributos con eso, mi llave foránea la tengo actualizar en cascada pero pues no sucede nada cuando se insertan datos y la verdad no se como corregir eso, porque si dejo el insert into como lo tengo en el campo id_producto (q es la llave foránea) siempre me va a aguardar un 1 porq es el dato q le pongo para q me pueda guardar los datos de lo contrario me mandaría un error. Tendrás alguna idea de como corregir eso.

Espero que puedas y puedan ayudarme Gracias !!!!!
  #4 (permalink)  
Antiguo 06/04/2007, 21:02
 
Fecha de Ingreso: abril-2007
Mensajes: 1
Antigüedad: 17 años
Puntos: 0
Re: Insertar datos en tabla Mysql

Haber si entendí tendrías que hacer este en tu script enviado, no entiendo porqué deberías cambiar tu PK, no es normal eso, pero sería así:

1) Primero actualizar el PK en tu tabla producto.

El código anterior del producto lo llamaré $codant y el código nuevo será $codnue, tú lo reemplazarás por tus propios valores.

$sql="UPDATE producto SET id_producto='$codnue' WHERE id_producto='$codant'"

Luego ya podrás grabar en tu otra tabla donde el producto es FK, con el código nuevo que tienes.

Espero te haya servido
  #5 (permalink)  
Antiguo 07/04/2007, 16:49
 
Fecha de Ingreso: marzo-2007
Mensajes: 163
Antigüedad: 17 años, 1 mes
Puntos: 0
Pregunta Re: Insertar datos en tabla Mysql

Hola Juan_rm:

Gracias por tu información pero no quiero cambiar mi PK, quizá no me dí a entender, lo q expliqué antes fué porque me habían dicho que pusiera un campo como auto_increment siendo q ya tenía uno y como sabrás no se permiten dos campos con auto_increment.

Lo que pasa esque en mi tabla padre la cual se llama Producto pues tengo mi PK que es id_producto y en la tabla hija que se llama desc_prod tengo una llave foránea que es id_producto, el problema es que al momento de insertar los datos en en la tabla desc_prod en el campo id_producto para la primera inserción tengo un 1, pero si quiero insertar otro dato es el mismo número, lo que yo quiero saber es como poder cambiar ese dato por el que le siga sin que tenga que estar poniéndolo yo, espero me haya dado a entender y me puedan ayudar.
  #6 (permalink)  
Antiguo 07/04/2007, 19:14
Avatar de deadlykyo  
Fecha de Ingreso: noviembre-2005
Ubicación: Cbba - Bolivia
Mensajes: 747
Antigüedad: 18 años, 5 meses
Puntos: 5
Re: Insertar datos en tabla Mysql

Holas Nantcy, para ser sincero no entiendo bien tu problema, hasta donde te entendi tienes una tabla padre llamada producto { id_producto(PK,autoincrement),... }, y una tabla hija llamada desc_prod {id_desc(PK,autoincrement), id_producto(FK),.. }, la tabla desc_prod tiene su propio id que es autoincrementable y tambien tiene la llave foranea de producto, con ese diseño se me viene a la mente que un producto puede tener mas de una descripcion, si es asi, entonces cuando tengas un registro en producto, podrias tener varios registros en desc_prod, algo asi mas o menos
Código:
producto
----------------------------
|id_producto | nombre_prod |
----------------------------
|    1       | producto1   |
|    2       | producto2   |
----------------------------

desc_prod
-------------------------------------------
|  id_desc   | id_producto | descripcion  |
-------------------------------------------
|    1       |     1       | descripcion1 |
|    2       |     1       | descripcion2 |
-------------------------------------------
sobre esa situación cual seria el problema que tienes ?? bueno si no logre captar bien la situación, tal vez podrias especificar la estructura de tus tablas y la consulta que deseas hacer en ellas, saludos, cya
__________________
"El Conocimiento es de todos, no solo de algunos"
  #7 (permalink)  
Antiguo 08/04/2007, 16:24
 
Fecha de Ingreso: marzo-2007
Mensajes: 163
Antigüedad: 17 años, 1 mes
Puntos: 0
Re: Insertar datos en tabla Mysql

create table producto
(
id_producto int auto_increment,
id_categoria int not null,
tipo_producto varchar(60),
nombre_prod varchar(60),
primary key(id_producto)
);

create table desc_prod
(
id_desc_prod int auto_increment,
id_producto int not null,
descripcion varchar(200),
precio_fijo float,
precio_min float,
precio_fin float,
precio_oferta float,
caract_tecnolog varchar(200),
fecha_ingre date,
fecha_venta date,
tiempo_ofer time,
cant_ofer int,
primary key(id_desc_prod),
foreign key(id_producto) references producto(id_producto) on update
cascade
);

Mira lo que pasa esque en mi tabla desc_prod del atributo id_producto quisiera que solo cambiara de número al momento de hacer la insercion de los datos, quisiera que fuera como el auto_increment, pero no se como solucionar eso, porque el dato que tengo en ese campo es un 1 y si sigo insertando datos se inserta el mismo número.

Espero haberme dado a entender.
  #8 (permalink)  
Antiguo 09/04/2007, 13:00
 
Fecha de Ingreso: marzo-2007
Mensajes: 163
Antigüedad: 17 años, 1 mes
Puntos: 0
Pregunta Re: Insertar datos en tabla Mysql

Me faltó poner la consulta esta es la sigueinte:

SELECT max(id_producto) from desc_prod;

entre estas dos consultas incremento el resultado de la consulta del max, pero no pongo el codigo entero porq este es sobre BD y no sobre codigo y pueden llamarme la atencion, si gustas revisa la seccion de PHP ahi tengo el codigo completo, pero te lo dejo por si me puedes ayudar de alguna forma.

INSERT INTO desc_prod(id_producto,descripcion,precio_fijo,prec io_min,precio_oferta,caract_tecnolog,fecha_ingre,t iempo_ofer) VALUES ($rr,'{$_POST['descrip']}',{$_POST['precio_fijo']},{$_POST['precio_min']},{$_POST['precio_oferta']},'{$_POST['caract']}','{$_post['fecha_reg']}','{$_POST['tiempo_ofer']}')",$link;

Gracias!!!!!!!!
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 22:38.