我每天早上5:19收到CSV。 CSV中的信息用于填充/更新我的sql数据库中的表。
我有3张桌子:
tempVehicle (temporary table, just for holding info),
vehicle (contains most info, main table),
and vehicleImages (table linked to vehicle by VIN).
我需要从表中删除新CSV中未包含的信息,并将新信息从CSV中获取到表中。
我将其设置为:
我总共有7个PHP文件,每个文件都与上述步骤之一相关联。我这样做是因为它们必须按照特定的顺序发生,而且我不知道如何在保持特定顺序的同时使多重查询正常工作。
在理想情况下,我希望使用一个php文件中的单个多查询来进行设置。我计划每天使用cron作业来运行此文件,而不希望不必运行多个cron作业。
因此,我想回答的问题是:
是否有更好的方法来更有效地更新表?
如果没有,是否可以将我的所有查询组合成一个多查询?
如果有人有其他建议,我会开放的。
答案 0 :(得分:0)
这就是我要做的
这应该覆盖现有表,同时删除临时表(因为它已重命名)。
RENAME TABLE tempVehicle TO vehicle
RENAME TABLE tempVehicleImages TO vehicleImages
重命名后,您可能还需要使用Alter Table设置索引。
作为我的旁注/宠爱之物:骆驼外壳不是我命名表的首选方式,我更喜欢vehicle和vehicle_image。这样就不存在大小写多元化的问题。
但是,这只是我做事的方式(但这是您的数据库)。
普通桌子
结点(桥)表(多对多关系)
因此,如果您有vehicle
和image
,则可以有一个Junction表vehicles_images
。这样,我知道当我看到一个复数表时就是一个联结表(两个或多个表名)。否则,我不必考虑它的vehicleImages,VehicleImages,vehicleImages,vehicleImage或任何其他组合。