簡體   English   中英

什么是復制mysql行的最快方法?

[英]what is the fastest way to copy mysql row?

我必須在頁面加載之前復制一些mysql行。 我試圖將它復制到臨時表,如下所示:

 mysqli_query($con,"CREATE TEMPORARY TABLE tmp_tbl SELECT * FROM subject WHERE ID='$ID'");
 mysqli_query($con,"UPDATE tmp_tbl SET ID=NULL");
 mysqli_query($con,"INSERT INTO subject SELECT * FROM tmp_tbl");
 mysqli_query($con,"DROP TABLE tmp_tbl");`

它工作得很慢。 只是以常規的丑陋方式復制它會更快嗎?

編輯 :當你想要更新多行時,你可以做這樣的事情:

 mysqli_query($con,"INSERT INTO subject (Primary,AnotherID, COLB, COLC)
SELECT NULL,'$a', COLB, COLC
FROM subject WHERE AnotherID='$someID'");

您必須在主鍵中放置null,否則它不起作用

你當然可以加快速度,但總體速度將取決於subject表中的行數 - 在你的所有查詢都加倍之后。

對於此示例,我假設subject表列是IDColAColBColC ,並且該ID是自動遞增的主鍵:

INSERT INTO subject (ColA, ColB, ColC)
SELECT ColA, ColB, ColC
FROM subject

關鍵是在插入/選擇時指定 ID 之外的每一列。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM