plusieurs requêtes d'insertion
Question
J'ai trois tableaux essentiellement dévalent, comme:
- sujet
- section (références id sujet)
- paragraphe (références sujet id et id section)
Quelle est la meilleure méthode d'écrire des instructions mysql pour créer le sujet initial / section / sous-section afin que je puisse saisir le son id (auto_incremented) des lignes nouvellement créées et les utiliser pour les insérer dans la seconde deux?
modifier J'utilise phpbb3, je sais pas si cela fait une énorme différence, mais je l'utilise normalement la fonction db-sql_query de $ ()
La solution
De la société mère, en bas de la ligne.
Ensuite, vous pouvez utiliser soit LAST_INSERT_ID () , ou insert dans le SELECT:
INSERT INTO TOPIC
(topic_id, topic)
VALUES (DEFAULT, $topic);
INSERT INTO SECTION
(topic_id, section)
SELECT topic_id, $section
FROM TOPIC
WHERE topic = $topic
INSERT INTO SUBSECTION
(section_id, topic_id, subsection)
SELECT section_id, topic_id
FROM SECTION
WHERE section = $section
Cet exemple suppose que TOPIC.topic_id
, SECTION.section_id
et SUBSECTION
sont auto_increment, les colonnes de clé primaire.
Autres conseils
Pour autant que je comprends, il n'y a qu'une seule façon, ce qui est haut vers le bas.
Pour ajouter un paragraphe à une section, vous devez avoir une section déjà insérée.
Pour ajouter un sujet à un paragraphe, assurez-vous que vous avez ajouté le paragraphe premier.
Sur le chemin, vous garder une trace de la dernière ID Inséré (si vous venez de créer il) pour donner à l'entité suivante la ligne.