INSERT sobre Tabla con PK autonumerica

03/02/2005 - 00:44 por Pablo Iñigo Blasco | Informe spam
Saludos,
Tengo un problema, tengo que insertar en una tabla un nuevo registro, la
primary key de esa tabla es autonumerico, por lo tanto no la especifico al
hacer el insert.

Justo despues tengo que hacer un insert sobre otra tabla, uno de los campos
del nuevo registro debe contener el valor de la PK del registro que acabo de
insertar en la primera tabla(es decir el campo es una FK).
Pero el problema es que no tengo ni idea de como conseguir el valor de ese
campo autonumerico justo despues de hacer el insert. ¿alguien sabe como
solucionarlo? Estoy en access asi que no puedo usar ni stored procedures ni
functions ... :-(




conexion.execute("INSERT INTO tabla1(campo2,campo3...)
VALUES('campo2','campo3',...)"); //el campo 1 es autonumerico
conexion.execute("INSERT INTO tabla2(campo2,campo3...) VALUES ('???????',
'campo3',...)); //¿como referencio al registro insertado con anterioridad?

// asi son las tablas:
tabla1(
ID Autonumerico PRIMARY KEY,
campo1 INTEGER,
...);

tabla2(
ID Autounmerico PRIMARYKEY,
campo2 INTEGER REFERENCES
tabla1(id),
campo3 INTEGER,
);
 

Leer las respuestas

#1 Valdov
03/02/2005 - 03:49 | Informe spam
Puedes hacer un select, pensando en que alguno de los otros campos pueda ser
unico tambien, o bien condicionando el query por todos los valores que
acabas de insertar, si llegara a haber dos registros iguales con excepcion
del autonumerico, creo que tendrías un problema con el diseño de tu base de
datos.

Pero sino despues de hacer el primer insert puedes hacer:

Select Campo1 from tabla1 Where campo2='elvalor' And campo3='elotrovalor'

Valdov


"Pablo Iñigo Blasco" wrote in message
news:OG$
Saludos,
Tengo un problema, tengo que insertar en una tabla un nuevo registro, la
primary key de esa tabla es autonumerico, por lo tanto no la especifico al
hacer el insert.

Justo despues tengo que hacer un insert sobre otra tabla, uno de los


campos
del nuevo registro debe contener el valor de la PK del registro que acabo


de
insertar en la primera tabla(es decir el campo es una FK).
Pero el problema es que no tengo ni idea de como conseguir el valor de ese
campo autonumerico justo despues de hacer el insert. ¿alguien sabe como
solucionarlo? Estoy en access asi que no puedo usar ni stored procedures


ni
functions ... :-(




conexion.execute("INSERT INTO tabla1(campo2,campo3...)
VALUES('campo2','campo3',...)"); //el campo 1 es autonumerico
conexion.execute("INSERT INTO tabla2(campo2,campo3...) VALUES ('???????',
'campo3',...)); //¿como referencio al registro insertado con anterioridad?

// asi son las tablas:
tabla1(
ID Autonumerico PRIMARY KEY,
campo1 INTEGER,
...);

tabla2(
ID Autounmerico PRIMARYKEY,
campo2 INTEGER REFERENCES
tabla1(id),
campo3 INTEGER,
);


Preguntas similares