有时候需要在程序中动态的创建数据库表(如日志表,可以动态的分年分月创建,以保证单张表数据不会太大),如果这是使用的是mysql数据库,需要在创建表的ddl语句末尾加上字符编码如:ENGINE=InnoDB AUTO_INCREMENT=40 DEFAULT CHARSET=utf8 COMMENT='数据采集日志',否则创建出来的表的各字段的编码可能会是latin1,从而在保存有中文字符的数据时会报 Data too long for column....的异常。
完整的创建表语句:
create table GCL_${tableNameSuffix} (
SOURCEID VARCHAR(70) not null,
ID VARCHAR(36),
STATUS VARCHAR(4),
MARK VARCHAR(3000),
DATASETTIME DATETIME,
UPDATETIME DATETIME,
constraint PK_GCL_${tableNameSuffix} primary key (SOURCEID)
)ENGINE=InnoDB AUTO_INCREMENT=40 DEFAULT CHARSET=utf8 COMMENT='数据采集日志'