public static void main(String[] args) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
Calendar begin = Calendar.getInstance();
begin.set(2021, Calendar.JANUARY, 1, 0, 0, 0);
Date beginDate = begin.getTime();
Calendar end = Calendar.getInstance();
end.set(2021, Calendar.DECEMBER, 31, 0, 0, 0);
Date endDate = end.getTime();
String dbStr = "db";
String tablePrefix = "merge_";
String tableStr = "";
String tableContent = getMerge();
Date temp = beginDate;
while (!temp.after(endDate)) {
tableStr = String.valueOf(tablePrefix + sdf.format(temp));
// System.out.println(tableStr);
System.out.println(String.format("create table %s.%s%s;", dbStr, tableStr, tableContent));
temp.setTime(temp.getTime() + 24*60*60*1000);
}
}
private static String getMerge() {
return "(n" +
" `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '自增主键',n" +
" `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',n" +
" `modify_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',n" +
") ENGINE=InnoDB DEFAULT CHARSET=utf8";
}
private static String getRecord() {
return "(n" +
" `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '自增主键',n" +
" `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',n" +
" `modify_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',n" +
") ENGINE=InnoDB DEFAULT CHARSET=utf8";
}
可实现指定日期范围内的分库分表生成。



