Foro de elhacker.net

Programación => Bases de Datos => Mensaje iniciado por: gAb1 en 29 Agosto 2013, 07:38 am



Título: selecionar el ultimo id creado en otra query
Publicado por: gAb1 en 29 Agosto 2013, 07:38 am
Hola, tenia dudas de si postearlo en php, pero creo que aqui es mas adecuado.

Tengo un problema para insertar un par de numeros en una tabla de mysql mediante un sencillo script php. Necesito coger la ultima id creada en una table y usarla en otra:

Código:
$register_logon = mysql_query("INSERT INTO rbac_account_groups (accountId,groupId) SELECT id as latestid FROM account ORDER BY joindate DESC LIMIT 1 VALUES ('latestid+1','1')");

Lo que no sé, es como usar la variable lastestid...

¿Alguna ayuda?

Gracias.

Saludos

gAb1


Título: Re: selecionar el ultimo id creado en otra query
Publicado por: HdM en 29 Agosto 2013, 11:15 am
Hola.

La sintaxis que utilizas es incorrecta y creo que además complicas demasiado la consulta. Prueba con:

Código
  1. INSERT INTO rbac_account_groups (accountId,groupId) VALUES ((SELECT MAX(id)+1 FROM account),1)

Saludos.


Título: Re: selecionar el ultimo id creado en otra query
Publicado por: gAb1 en 29 Agosto 2013, 15:05 pm
Muchisimas gracias, tengo que ponerme al dia con esto.

Parece que hay un error con el +1, me devuelve este error:
Citar
<e>Query: INSERT INTO `rbac_account_groups` (accountId, groupId) VALUES ((SELECT MAX(id)+1 FROM `account`),'1')

Error Code: 1452
Cannot add or update a child row: a foreign key constraint fails (`auth`.`rbac_account_groups`, CONSTRAINT `fk__rbac_account_groups__account` FOREIGN KEY (`accountId`) REFERENCES `account` (`id`) ON DELETE CASCADE)

Sin el +1 va bien, pero account.id es primary key y autoincrement.


Título: Re: selecionar el ultimo id creado en otra query
Publicado por: Carloswaldo en 30 Agosto 2013, 01:15 am
Al parecer rbac_account_groups.accountId es un FK de account.id ¿No? En tal caso es obvio que el constraint falle, estás sumando 1 al último id ingresado, es decir, haces referencia a un id en account que no existe.


Título: Re: selecionar el ultimo id creado en otra query
Publicado por: gAb1 en 30 Agosto 2013, 03:16 am
Si, me acababa de dar cuenta cuando abri el alter table menu para activar el autoincrement y asi no necesito insertar accountId ya que, al igual que id (from account) se asigna automaticamente desde 1.

Gracias por las respuestas.

Saludos

gAb1