我有超过 10,000,000 行需要插入到一张表中。考虑到行数很大,想先把大表拆分成100个小表,然后从table_001插入到table_100。我希望这样做:
int main(){
int i = 0;
int j = 0;
int k = 0;
EXEC SQL BEGIN DECLARE SECTION;
char *buff[100] = { 0 };
EXEC SQL END DECLARE SECTION:
while( i < 100 ){
buff[i] = malloc(12);
sprintf(buff[i],"table_%3.3d",i+1);
i++;
}
i = 0;
while( i < 10000000 ){
EXEC SQL INSERT INTO :buff[j] VALUES(:v1,:v2);/* v1 and v2 is not important here, so I eliminate the code generate the v1 and v2 */
k++;
if( 1000000 == k ){
k = 0;
j++;
}
}
return 0;
}
但似乎表名不能是可变的,有没有类似的方法可以做到这些?或者有没有其他好的方法来处理嵌入式 SQL 中的大表?