我需要根据用户请求更新很多行。这是一个有产品的网站。
我可以......
INSERT
查询。但是,如果INSERT
失败,则会丢失所有数据。UPDATE
。这个循环目前迭代超过8个项目,但将来它可能会达到15个。这很多UPDATE
听起来不太好。auto_increment
个ID。然后首先执行SELECT
,在变量中获取所有旧行 ID,执行一个INSERT
,然后执行DELETE WHERE IN SET
。这里的惯常做法是什么?
由于
答案 0 :(得分:2)
15 UPDATE
s真的不是那么多。如果你在谈论15 百,那么你可能需要多考虑一下你的设计......
答案 1 :(得分:2)
只是做更新。在交易中,如果您需要。 15个更新是花生,除非您在每次访问页面时都这样做。
您不希望删除/重新插入行只是为了避免额外的查询。如果你想要一个引用你正在更新的表的外键,你将无法做到。
几乎肯定是过早的优化。
答案 2 :(得分:0)
最佳做法可能是使用存储过程
http://dev.mysql.com/doc/refman/5.5/en/stored-routines.html
这只是PHP方面的一个命令。其余的将在MySQL服务器上实现。
您还可以尝试使用mysqli :: multi-query一次执行一些查询 http://php.net/manual/en/mysqli.multi-query.php