2010-11-29 6 views
1

J'ai une grande base de données que je coupe dans des bases de données plus petites en fonction des intervalles de temps. Cela réduira considérablement le temps de requête. Dans une requête, puis-je copier un jeu de résultats d'une base de données à une autre avec un schéma identique?Mysql Query - Copier le jeu de résultats d'une base de données à une autre

Fondamentalement, une sélection suivie d'une mise à jour effectuée dans le même bloc de code?

Merci,

slothishtype

Répondre

3

Copie des données d'une base dans une autre devrait être presque aussi simple que @slotishtype décrit sauf que vous aurez besoin de se qualifier avec la base de données AUTRES que vous voulez qu'il reproduit dans. Cependant, comme vous l'avez mentionné à propos de la copie du même schéma, c'est quelque chose d'autre. Si vous voulez toutes vos règles R/I, triggers, etc, vous devrez peut-être vider le schéma de base de données de votre premier (où il a toutes les tables de création, index, etc) et exécuter dans une nouvelle base de données. Toutefois, cela peut signaler un problème où vous avez des colonnes à incrémentation automatique. Vous ne pouvez pas écrire dans une colonne à incrémentation automatique en lecture seule - la base de données contrôle cela. Cependant, si un tel cas existait, il vous suffirait de faire de ces colonnes des types de données entiers (ou similaires) et de faire

insert into OtherDatabase.Student (field1, field2, etc) 
    select field1, field2, etc from FirstDatabase.student 
0

S'il est nécessaire d'ajouter à une nouvelle base de données, cela fera bien:

CREATE TABLE STUDENT1 SELECT * FROM étudiant

EDIT : pour l'enregistrement: Ce ne sera pas coopérer sur les indices, etc

Ceci, howe ver, will:

CREATE TABLE student_new étudiant LIKE; INSERT recipes_new SELECT * FROM étudiant;

slotishtype

Questions connexes