0

我必须在页面加载之前复制一些 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'");

您必须在主键中放置一个空值,否则它不起作用

4

1 回答 1

2

您当然可以加快速度,但总体速度将取决于subject表中的行数——毕竟您的所有查询都将其大小加倍。

对于此示例,我假设subject表列是IDColAColBColC,这ID是一个自动递增的主键:

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

关键是指定每一列,插入/选择时除外。 ID

于 2013-08-29T13:19:27.150 回答