Puis-je obtenir le dernier INSERT ID() pour une clé composée dans MySQL?MySQL SELECT LAST_INSERT_ID() pour la clé composée. C'est possible?
3
A
Répondre
5
Oui. Vous ne pouvez pas avoir plusieurs champs d'incrémentation automatique dans une seule table.
CREATE TABLE foo (
id1 int(11) NOT NULL auto_increment,
id2 int(11) NOT NULL default '0',
PRIMARY KEY (id1, id2)
);
INSERT INTO foo VALUES (DEFAULT, 2);
SELECT LAST_INSERT_ID(); -- returns 1, the value generated for id1
LAST_INSERT_ID()
retourne la valeur que pour une colonne déclarée AUTO_INCREMENT
. Il n'y a aucune fonction pour retourner la valeur dans une clé primaire composée que n'a pas été généré par le système. Vous devriez déjà connaître cette valeur, puisque vous venez de la donner dans une déclaration INSERT
. Le cas délicat serait quand un déclencheur ou quelque chose remplace la valeur.
Questions connexes
- 1. MySQL current_insert_id()? (Pas last_insert_id())
- 2. Problème mySQL et LAST_INSERT_ID
- 3. Clé primaire composée
- 4. clé de dimension SSAS comme clé composée vs champ char
- 5. Courant Nhibernate entité composée, spécifiez étrangère clé
- 6. Entité composée Nhibernate fluide, spécifiez la clé parente
- 7. Avoir com.l2fprod.common.propertysheet.PropertySheetPanel pour afficher la classe composée
- 8. MySQL Multiple select
- 9. Conditionnel SELECT MySQL
- 10. MySQL Select Instruction DISTINCT pour plusieurs colonnes
- 11. MySQL Select Déclaration - Pour les messages
- 12. Déterminer la logique pour MySQL Select - Système de réservation
- 13. Mysql, NOT EXISTS, SELECT
- 14. mysql fake select
- 15. Clé étrangère à plusieurs colonnes dans MySQL?
- 16. mysql insert select conundrum
- 17. MYSQL INSERT SELECT problème
- 18. Mysql Date SELECT
- 19. Clé primaire de la ligne insérée jdbc?
- 20. Assurer l'unicité d'une clé MySQL
- 21. Instruction SELECT conditionnelle MySQL
- 22. MySQL INSERT INTO ... SELECT lance erreur 1064
- 23. MYSQL MyISAM Comment inscrire 2 instruction select + select count
- 24. MySQL: SELECT d'un autre serveur
- 25. Conversion de la clé mySQL en PgSQL?
- 26. Générer un champ dans MySQL SELECT
- 27. Instruction MySQL SELECT utilisant Regex pour reconnaître les données existantes
- 28. Question clé composite dans MySQL
- 29. MySQL: Est-il possible de joindre les résultats GROUP-BY'd à deux SELECT?
- 30. Que utiliser pour SQL Server au lieu de "clé"?
"Vous ne pouvez pas avoir plusieurs champs d'incrémentation automatique dans une seule table." Je ne le savais pas, alors j'ai essayé de créer une table avec deux champs d'auto-incrémentation, et j'ai eu cette erreur: définition de table incorrecte; il ne peut y avoir qu'une seule colonne automatique et elle doit être définie comme une clé. – Liam
Donc, 7 ans plus tard, la réponse est valable. –