Php Mysql使用特定列和unix时间戳将所有行从一个表复制到另一个表

Php Mysql使用特定列和unix时间戳将所有行从一个表复制到另一个表,php,mysql,Php,Mysql,我目前每天都在将表1中的所有行复制到表2中。表2是表1每天包含内容的7天存档。平均每天有150000行需要移动 表1 id | name | category | image | description | link 表2 id | name | link | date 为此,我使用PHP选择表1中的所有行: 从表1中选择名称、类别和链接 然后我循环遍历每一个并将其插入表2中: INSERT INTO Table2 SET name = ''.$row["name"].'', link =

我目前每天都在将表1中的所有行复制到表2中。表2是表1每天包含内容的7天存档。平均每天有150000行需要移动

表1

id | name | category | image | description | link
表2

id | name | link | date
为此,我使用PHP选择表1中的所有行:

从表1中选择名称、类别和链接

然后我循环遍历每一个并将其插入表2中:

INSERT INTO Table2 SET name = ''.$row["name"].'', link = ''.$row["link"].'', date = time()
时间作为int11存储在数据库中。有人能告诉我是否有更好或更有效的方法来实现这一点吗?

您可以使用插入选择而不是循环:

INSERT INTO Table2(name,link,date)
SELECT name, link, UNIX_TIMESTAMP() FROM Table1

也许有一个叫做a的查询?可能有很多不同的方法可以做到这一点,哪一个更好或更有效,这在问答网站上是很难讨论的。你可能只是得到不同的意见,并不知道哪一个更好。此外,它还取决于应用程序中正在进行的其他事情。您还选择、插入了什么,是否同时插入等等。谢谢,我只是在复制行时执行此脚本,没有其他操作。谢谢,我将对此进行测试。做了测试,效果非常好,速度也非常快!