hi J'ai un problème pour insérer des données dans plusieurs tables. J'ai définir la clé primaire & clé de référence dans les tableaux maintenant je veux insérer des données dans les deux tableaux en une seule requête ....... comment puis-je faire cela ........... ????? ?? Votre langue prend-elle en charge la construction INSERT ALL?Insérer des données dans plusieurs tables
Répondre
Si oui, c'est le meilleur moyen de le faire. En fait c'est le seul moyen. J'ai posté un exemple de cette construction dans another SO thread (cet exemple de syntaxe vient d'Oracle SQL).
L'autre option consiste à créer une procédure stockée transactionnelle qui insère un enregistrement dans la table de clé primaire, suivi d'un enregistrement dans la table de référence.
Voici à quoi servent les transactions. Le langage SQL standard n'autorise pas l'insertion d'une seule instruction dans plusieurs tables à la fois. La bonne façon de le faire est:
-- begin transaction
insert into table 1 ...
insert into table 2 ...
commit
et 1 de votre choix de le faire est d'utiliser ORM (comme Hibernate, NHibernate) la vous faites votre objet et définir d'autres rapport à elle et, enfin, juste enregistrer l'objet principal , comme:
A a;
B b;
C c;
a.set(b);
a.set(c);
DAO.saveOrUpdate(a);
vous devez remarquer votre DAO.saveOrUpdate (a); ligne de code fonctionne tout simplement avec mise en veille prolongée, mais il insérer des données dans 3 tableau A, B, C.
Votre question n'est pas exactement clair sur ce problème particulier est. Je vois trois possibilités: 1.
Vous voulez insérer dans deux tables wiht une seule instruction INSERT
2. Vous voulez faire deux inserts, mais sans rien d'autre pouvoir « entrer au milieu »
3. vous souhaitez insérer dans une table, puis obtenir la clé primaire à insérer dans la deuxième table
la réponse à 1. est simple:
You can't.
La réponse à 2. est tout aussi simple:
BEGIN TRANSACTION
INSERT INTO <table1> (a,b,c) VALUES (1,2,3)
INSERT INTO <table2> (a,b,c) VALUES (1,2,3)
COMMIT TRANSACTION
La réponse à 3. a plusieurs possibilités. Chacun dépend exactement de ce que vous voulez faire. Très probablement, vous voulez utiliser SCOPE_IDENTITY() mais vous pouvez également rechercher @@identity et IDENT_CURRENT() pour comprendre les différentes options et complexités.
BEGIN TRANSACTION
INSERT INTO <dimension_table> (name)
VALUES ('my new item')
INSERT INTO <fact_table> (item_id, iteam_value)
VALUES (SCOPE_IDENTITY(), 1)
COMMIT TRANSACTION
- 1. Insérer des valeurs dans plusieurs tables SQL
- 2. Insérer dans plusieurs tables de base de données en utilisant Linq, ASP.NET MVC
- 3. Relations complexes dans Ruby - afficher des données sur plusieurs tables
- 4. La procédure SQL Server renvoie plusieurs tables - Insérer les résultats dans les tables
- 5. Insertion SQL avec des données provenant de plusieurs tables
- 6. Comment obtenir des données de plusieurs tables appartenant à des champs contenant des cases à cocher?
- 7. Plusieurs tables de données en PHP/MySQL?
- 8. Insérer des données dans SQL Tableau
- 9. Comment insérer des données dans deux tables de linq 2 sql avec la procédure stockée
- 10. MYSQL Insérer .. Sélectionner - Plusieurs lignes et tables avec des clés étrangères?
- 11. Insérer des données DBGrid TListItem
- 12. Insérer des insertions dans la même table
- 13. insérer des données dans la base de données avec jsp
- 14. Insérer des données du registre dans des signets prédéfinis
- 15. SQL Insérer une ou plusieurs lignes de données?
- 16. MS SQL Server, insérer plusieurs
- 17. Insérer des lignes dans une base de données dans ASP.NET
- 18. Plusieurs tables dans un jeu TClientDataset?
- 19. Comment écrire un fichier de contrôle du chargeur SQL pour charger des données dans plusieurs tables
- 20. Peut rake db: créer créer des tables dans plusieurs bases de données?
- 21. Récupération des valeurs de plusieurs tables dans une base de données MySQL
- 22. Insérer le code dans plusieurs fichiers? Supprimer de plusieurs fichiers?
- 23. plusieurs tables bien ou mauvais?
- 24. MySQL plusieurs tables et plusieurs lignes
- 25. Comment puis-je insérer à partir de plusieurs tables en une seule?
- 26. Insérer des articles directement dans la base de données MediaWiki
- 27. Insérer des données binaires dans SQL Server en utilisant PHP
- 28. Télécharger et insérer des données de fichier dans CodeIgniter
- 29. Insérer des valeurs de tableau dans la base de données
- 30. Comment insérer des caractères spéciaux dans la base de données?