我现在是每个月会自动生成一个月表   如5月co_data_201005,6月co_data_201006。以此类推。现在我想建一个联合表co_data_ccyymm,每月生成新表后这个联合表会自动的把新表联合进来。
更直接点,我建一个联合表DROP TABLE IF EXISTS co_data_ccyymm;
CREATE TABLE IF NOT EXISTS co_data_ccyymm
(
   ....
)
TYPE=MERGE UNION=(co_data_201004,co_data_201005,co_data_201006 ... ) INSERT_METHOD=LAST;这个UNION=(..)这里面能不能用通配符什么的达到新表生成,联合表自动联合的功能。

解决方案 »

  1.   

    不能,要具体的表名!您每一个月定时重建一下 co_data_ccyymm就可以了阿!
      

  2.   

    MySQL官方文档 http://dev.mysql.com/doc/refman/5.1/zh/index.html
      

  3.   

    DROP TABLE IF EXISTS co_data_ccyymm;
    CREATE TABLE IF NOT EXISTS co_data_ccyymm
    (
      ....
    )
    TYPE=MERGE UNION=(co_data_201004,co_data_201005,co_data_201006 ... ) INSERT_METHOD=LAST;实际上使用union表更灵活,也更容易维护!建议您一次就建立1或多年的资料表
    联合表名 co_data_ccyymm_2010
    每月资料表
    co_data_201001
    co_data_201002
    co_data_201003
    co_data_201004
    co_data_201005
    co_data_201006
    co_data_201007
    co_data_201008
    co_data_201009
    co_data_201010
    co_data_201011
    co_data_201012
      

  4.   

    可以使用ls my_monthly_log_name_??.frm | awk -F '.' '{print $1}' > merge_table.MRG 
    chown mysql:mysql merge_table.MRG 
    mysql -h localhost -u root -pyour_pass -e "flush tables;"