2 votes

Codeigniter : Récupérer les insert_ids en utilisant insert_batch()

Existe-t-il un moyen de récupérer tous les identifiants d'insertion (en utilisant $this->db->insert_id() ) à partir d'une méthode insert_batch() précédemment exécutée ?

Idéalement, il devrait produire un simple tableau des identifiants dans l'ordre où ils ont été insérés.

4voto

Junaid Points 1220

La création d'un déclencheur fonctionnerait.

Je ne sais pas si cela affectera les performances lors de l'insertion d'un grand nombre de lots.

DELIMITER $$

CREATE
    TRIGGER `test`.`getids` AFTER INSERT
    ON `database_name`.`table_name`
    FOR EACH ROW BEGIN
        INSERT INTO last_inserted_ids (last_insertId) VALUES(LAST_INSERT_ID());

    END$$

DELIMITER ;

Il récupérera tous les identifiants dans le tableau, mais si vous voulez qu'ils soient dans un tableau, écrivez une requête qui s'exécute exactement après le lot et récupère toutes les valeurs dans le tableau. last_inserted_ids puis de la tronquer afin d'avoir toujours les identifiants souhaités après l'exécution d'un lot.

J'espère que cela vous aidera.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X