发现有类似的问题,但是sqlserver,求oracle写法。。原帖地址供参考http://bbs.csdn.net/topics/100034393
有表如下:
ID    NAME     CLASS
1     AA        II       
2     BB        IV       
3     AB        IV        
4     AC        II        
5     CC        IX        
6     SS        II          
7     AS        IX        
8     ES        IX  
---------------------
用什么方法可以把上的表按照class的内容分成多个表
结果如下:
ID    NAME     CLASS
1     AA       II
4     AC       II
6     SS       II
--------------------
ID    NAME     CLASS 
2     BB       IV       
3     AB       IV 
--------------------
ID    NAME     CLASS   
5     CC       IX  
7     AS       IX        
8     ES       IX

解决方案 »

  1.   

    是求mysql的方法。。不是oracle
      

  2.   

    好像mysql分表是无法做到的,但是分区可以做到
      

  3.   

    可以用这样的 SQL  去生成拆表的 sql,然后执行生成的每1条SQL就行了
    (比如存储过程+游标,或者是手工执行,或者是用 mysql 命令行执行)
    select distinct concat('create table `', CLASS, '` as select * from tb where CLASS=', quote(CLASS), ';') from tb;
      

  4.   

    比如用 mysql 去执行,可以参考这个:
    mysql -e "select distinct concat('create table `', CLASS, '` as select * from tb where CLASS=', quote(CLASS), ';') from tb;" --skip-column-names -u 帐号 -p"密码" 库名 | mysql -u 帐号 -p"密码" 库名