Cette question aborde le problème central de l'insertion efficace de plusieurs enregistrements identiques dans une base de données à l'aide de NAVICAT. Il n'y a pas un seul bouton "INSERT DES DONNÉES INDERTIQUES" intégrés dans Navicat. Cependant, plusieurs méthodes y parviennent, chacune avec ses propres avantages et inconvénients en fonction de la taille de votre ensemble de données et de votre niveau de confort avec SQL.
Méthode 1: en utilisant des instructions d'insertion SQL avec une boucle (pour les petits ensembles de données):
pour les datasets relativement petits, vous pouvez construire un SQL INSERT
qui utilise des datasets relativement faibles, vous pouvez construire un SQL
-- Example: Inserting the same record 10 times into a table named 'my_table' DELIMITER // CREATE PROCEDURE insert_multiple_rows(IN num_inserts INT) BEGIN DECLARE i INT DEFAULT 1; WHILE i <= num_inserts DO INSERT INTO my_table (column1, column2, column3) VALUES ('value1', 'value2', 'value3'); SET i = i + 1; END WHILE; END // DELIMITER ; CALL insert_multiple_rows(10);
qui utilise des datasets relativement petits, vous pouvez construire un SQL my_table
qui utilise des datasets relativement faibles, vous pouvez vous construire un SQL column1
Données plusieurs fois. Cette approche est simple mais peut devenir inefficace pour de très grands ensembles de données. column2
column3
'value1'
Remplacer 'value2'
, 'value3'
, INSERT
, num_inserts
,
, et avec vos noms et valeurs de table et de colonne réels. Cette procédure stockée exécute l'instruction UNION ALL
à plusieurs reprises dans une boucle. N'oubliez pas de s'ajuster au nombre souhaité d'insertions.
UNION ALL
Méthode 2: Utilisation d'une instruction
INSERT INTO my_table (column1, column2, column3) SELECT 'value1', 'value2', 'value3' UNION ALL SELECT 'value1', 'value2', 'value3' UNION ALL SELECT 'value1', 'value2', 'value3' -- ...repeat UNION ALL as many times as needed... ;
pour les ensembles de données de taille modérée, une instruction
offre une alternative plus efficace aux boucles. Cette approche construit une seule instruction SQL qui inserte plusieurs lignes simultanément. INSERT INTO ... SELECT
Bien que plus concise qu'une boucle pour un nombre modéré de répétitions, créant manuellement cette déclaration pour un grand nombre d'insertions devient fastidieuse et sujette aux erreurs.
INSERT INTO ... SELECT
Méthode 3: Utilisation d'un tableau temporaire et
-- Create a temporary table with the data to be inserted CREATE TEMPORARY TABLE temp_table (column1 VARCHAR(255), column2 VARCHAR(255), column3 VARCHAR(255)); INSERT INTO temp_table (column1, column2, column3) VALUES ('value1', 'value2', 'value3'); -- Insert data from the temporary table into the target table (repeat as many times as needed) INSERT INTO my_table (column1, column2, column3) SELECT column1, column2, column3 FROM temp_table; DROP TEMPORARY TABLE temp_table;
INSERT
Pour les grands ensembles de données, la méthode la plus efficace consiste à créer un tableau temporaire contenant les données à insérer, puis à utiliser une instruction temp_table
unique pour remplir votre tableau cible. INSERT INTO ... SELECT
avant l'instruction finale UNION ALL
.
Pour les grands ensembles de données, la Méthode de la table temporaire décrite ci-dessus est la meilleure approche. Il minimise l'interaction de la base de données et maximise les performances. The other methods become increasingly inefficient as the number of insertions grows.
While Navicat doesn't offer a built-in shortcut specifically for this task, you can automate the process using external scripting languages like Python or a shell script combined with the mysql
command-line client. Ces scripts peuvent générer les instructions SQL nécessaires (en utilisant l'une des méthodes décrites ci-dessus) et les exécuter par rapport à votre base de données. Ceci est particulièrement utile pour les tâches répétitives ou lorsqu'ils traitent de très grands ensembles de données où l'entrée manuelle SQL n'est pas pratique. Par exemple, un script Python pourrait générer dynamiquement l'instruction UNION ALL
basée sur le nombre souhaité d'insertions. Ce niveau d'automatisation offre des économies de temps importantes et réduit le risque d'erreurs.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!