elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.


 


Tema destacado: Sigue las noticias más importantes de seguridad informática en el ttwitter! de elhacker.NET


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  Bases de Datos (Moderador: Carloswaldo)
| | | |-+  selecionar el ultimo id creado en otra query
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: selecionar el ultimo id creado en otra query  (Leído 1,856 veces)
gAb1


Desconectado Desconectado

Mensajes: 731


Ver Perfil
selecionar el ultimo id creado en otra query
« en: 29 Agosto 2013, 07:38 »

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


En línea

HdM


Desconectado Desconectado

Mensajes: 1.674



Ver Perfil
Re: selecionar el ultimo id creado en otra query
« Respuesta #1 en: 29 Agosto 2013, 11:15 »

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.


En línea

- Nice to see you again -
gAb1


Desconectado Desconectado

Mensajes: 731


Ver Perfil
Re: selecionar el ultimo id creado en otra query
« Respuesta #2 en: 29 Agosto 2013, 15:05 »

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.
« Última modificación: 29 Agosto 2013, 15:55 por gAb1 » En línea

Carloswaldo
Traductor
Moderador Global
***
Desconectado Desconectado

Mensajes: 4.741


Nos reservamos el derecho de ban.


Ver Perfil WWW
Re: selecionar el ultimo id creado en otra query
« Respuesta #3 en: 30 Agosto 2013, 01:15 »

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.
En línea

gAb1


Desconectado Desconectado

Mensajes: 731


Ver Perfil
Re: selecionar el ultimo id creado en otra query
« Respuesta #4 en: 30 Agosto 2013, 03:16 »

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
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines