這個問題解決了使用navicat有效地將多個相同記錄插入數據庫的核心問題。 Navicat中沒有一個內置的“批處理插入數據相同數據”按鈕。 但是,有幾種方法實現了這一目標,每種方法都具有自己的優勢和缺點,具體取決於數據集的大小以及使用SQL的舒適度。
方法1:使用帶有循環的SQL插入語句(用於較小的數據集):>
INSERT
-- 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);
my_table
column1
column2
相同的數據多次。 這種方法很簡單,但對於非常大的數據集可能會降低。 column3
'value1'
'value2'
'value3'
替換INSERT
,num_inserts
,
,,UNION ALL
,,
和UNION ALL
>,使用您的實際表格和列名稱和值。 此存儲過程在循環中重複執行
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... ;
方法2:使用INSERT INTO ... SELECT
>語句(對於中度數據集):
INSERT INTO ... SELECT
-- 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
temp_table
INSERT INTO ... SELECT
雖然比循環更簡潔,以中等數量的重複,手動為大量插入而手動創建此語句變得乏味而刻板。數據集):對於大型數據集,最有效的方法涉及創建一個包含要插入的數據的臨時表,然後使用單個
UNION ALL
這將與重複的
對於大型數據集,上面描述的臨時表方法是最佳方法。 它可以最大程度地減少數據庫交互並最大化性能。 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.這些腳本可以生成必要的SQL語句(使用上述任何方法)並根據您的數據庫執行它們。 這對於重複任務或處理手動SQL輸入不切實際的非常大的數據集特別有用。 例如,python腳本可以根據所需的插入數量動態生成UNION ALL
>
以上是Navicat如何批量插入相同數據的詳細內容。更多資訊請關注PHP中文網其他相關文章!