Est-il possible de créer plus d'une table à la fois en utilisant une seule instruction create table.Création d'une table dans mysql
Répondre
Pas avec MS SQL Server. Je ne suis pas sûr de mysql.
Pouvez-vous donner plus d'informations sur pourquoi vous voudriez faire ceci? Il y a peut-être une approche alternative.
Je ne sais pas, mais je ne pense pas que vous puissiez le faire. Pourquoi tu veux faire ça?
Pas en SQL standard en utilisant simplement l'instruction 'CREATE TABLE'. Cependant, vous pouvez écrire plusieurs instructions dans une instruction CREATE SCHEMA, et certaines de ces instructions peuvent être des instructions CREATE TABLE. Question suivante - votre SGBD prend-il en charge CREATE SCHEMA? Et a-t-il des effets secondaires indésirables? En se basant sur les pages de manuel de MySQL, il supporte CREATE SCHEMA comme synonyme de CREATE DATABASE. Ce serait un exemple d'un des «effets secondaires fâcheux» dont je parlais.
(Saviez-vous que SQL standard ne fournit pas une déclaration « CREATE DATABASE »?)
Je ne pense pas qu'il est possible de créer plus d'une table avec une commande "CREATE TABLE. Tout dépend vraiment de ce que vous voulez faire. Si vous voulez que la création soit atomique, les transactions sont probablement la voie à suivre. Si vous créez toutes vos tables à l'intérieur d'une transaction, elle agira comme une seule instruction create du point de vue de tout ce qui se passe en dehors de la transaction.
Pour MySQL, vous pouvez utiliser multi-query pour exécuter plusieurs instructions SQL en un seul appel. Vous devez émettre deux instructions CREATE TABLE
séparées par un point-virgule.
Mais chaque instruction CREATE TABLE
individuellement ne peut créer qu'une seule table. La syntaxe supportée par MySQL ne permet pas de créer plusieurs tables simultanément. @bsdfish suggère d'utiliser des transactions, mais les instructions DDL comme CREATE TABLE
provoquent des validations implicites de transaction. Il n'existe aucun moyen d'exécuter plusieurs instructions CREATE TABLE
en une seule transaction dans MySQL.
Je suis également curieux de savoir pourquoi vous auriez besoin de créer deux tables simultanément. La seule idée que je pourrais avoir est de savoir si les deux tables ont des dépendances cycliques, c'est-à-dire qu'elles se réfèrent mutuellement avec des clés étrangères. La solution à cela consiste à créer la première table sans cette clé étrangère, puis créer la deuxième table, puis ajouter la clé étrangère à la première table avec ALTER TABLE ADD CONSTRAINT
. La suppression de l'une ou l'autre table nécessite un processus similaire à l'envers.
- 1. Création d'une table dans Datalist
- 2. Création d'un MySQL Query
- 3. Création d'une table cliquable
- 4. Création d'une table dans SQL Server Express
- 5. problème dans la création de table
- 6. Création d'élément déclencheur de la table dans la base de données MySQL (erreur de syntaxe)
- 7. Problème création d'une table de référence dans une base MySQL en utilisant php
- 8. MySQL - Table dupliquée
- 9. table mysql joindre sélectionnez
- 10. MySQL: Déterminer Table Dynamiquement
- 11. MySQL DELAY_KEY_WRITE TAble Valeur
- 12. MySQL Multi-Table Join
- 13. mysql trigger dans la même table
- 14. Horodatage MySQL uniquement lors de la création
- 15. Création du type de variable ENUM dans MySQL
- 16. Rendre la table MySQL unique
- 17. mysql Tronquer table vs supprimer
- 18. Création d'un seul lien hypertexte à partir de 2 entrées de table mysql utilisant php
- 19. Table Mysql lentement intermittente - pourquoi?
- 20. Quelle structure de table mysql à utiliser dans ce cas
- 21. création d'une table si elle n'existe pas
- 22. Création de sections de table avec NSFetchedResultsController
- 23. Création d'enregistrements d'héritage de table unique dans les rails
- 24. Création de nouvelles lignes modifiables dans une table
- 25. Création d'une table dans SQL2005 via le programme .net
- 26. Problème lors de la création d'une table en utilisant php
- 27. Création d'une vue MySQL en utilisant UNION
- 28. Insérer des enregistrements dans une table MySQL en fonction des valeurs existantes dans une autre table
- 29. MySQL comment supprimer des enregistrements dans une table qui sont dans une autre table
- 30. Générateur de définition de table MySQL en mode hors connexion
pourquoi auriez-vous besoin de faire cela? – sfossen
@Sfossen, Peut-être sur une installation d'application où la performance est la clé? – alex
@alex: comment cela fonctionne-t-il plus vite? – sfossen