Je dois obtenir le dernier identifiant d'insertion d'une table insérée spécifique?. Disons que j'ai ce code:
INSERT INTO blahblah (test1, test 2) VALUES ('test1', 'test2');
INSERT INTO blahblah2 (test1, test 2) VALUES ('test1', 'test2');
INSERT INTO blahblah3 (test1, test 2, lastid) VALUES ('test1', 'test2', last id of blahblah);
Comment obtenir l'identifiant d'insertion de la table blahblah dans la table blahblah3? LAST_INSERT_ID () ne vous donne que le dernier identifiant d'insertion
Cordialement, Simon :)
Vous pouvez utiliser la fonction LAST_INSERT_ID () . Essaye ça:
INSERT INTO blahblah (test1, test2) VALUES ('test1', 'test2');
SELECT LAST_INSERT_ID() INTO @blahblah;
INSERT INTO blahblah2 (test1, test2) VALUES ('test1', 'test2');
INSERT INTO blahblah3 (test1, test2, lastid) VALUES ('test1', 'test2', @blahblah);
Est-ce ce que vous recherchez?
SELECT id FROM blahblah ORDER BY id DESC LIMIT 1
Si vous voulez le faire en une seule instruction, utilisez:
INSERT INTO blahblah3 (test1, test2, lastid)
VALUES ('test1', 'test2', (select MAX(id) FROM blahblah));
De cette façon, vous n'avez pas besoin d'enregistrer les variables à l'avance, ce qui garantit que vous obtiendrez le dernier ID à ce moment précis.
Vous pouvez utiliser la fonction mysql_insert_id();
pour obtenir une réponse rapide.
Mais si vous utilisez un site à fort trafic, il existe des chances de résultats précis.
Vous pouvez utiliser la fonction LAST_INSERT_ID () .
INSERT INTO blahblah (test1, test 2) VALUES ('test1', 'test2');
//this query will return id. Save it in one variable
select LAST_INSERT_ID()
En bref, enregistrez le dernier identifiant d'insertion dans une variable, puis utilisez-le dans blahblah3
vous pouvez également trouver le dernier identifiant par requête dans le codeigniter
$this->db->order_by('column name',"desc");
$this->db->limit(1);
$id= $this->db->get('table name');