很多時候,我們會把創建多張相同表結構、不同表名的表,來達到分量的效果,但在創建models時,一般只會創建一個,僅在
public function tableName() { }
函數上做文章。
在導入數據時,CActiveRecord中的private static $_models=array();會在創建時保存表名及結構,而在第二次創建model時,依然會使用上次的表結構,導致無法按需求對數據進行分表
解決方案是:
$model = new Model();
$model->refreshMetaData();//重新獲取表結構
當然,使用上面的方式沒有直接使用sql效率高。只是提供一種方案