尝试使用Java ResultSet元数据创建MySQL表时出现SQLSyntaxErrorException

时间:2015-05-14 07:44:46

标签: java mysql

o.a.s.ml

我正在尝试使用for (int i = 1; i < columnCount + 1; i++ ) { if ( i > 1 ) sb.append( ", " ); String colname=rsmetadata.getColumnName(i); String datatype=rsmetadata.getColumnTypeName(i); int sizedata=rsmetadata.getColumnDisplaySize(i); //System.out.println("column is "+colname+"#"+datatype+"#"+sizedata); sb.append(colname).append(" ").append(datatype); int precision = rsmetadata.getPrecision(i); if ( precision != 0 ) { sb.append( "( " ).append( precision ).append( " )" ); } //System.out.println(rsmetadata.getColumnTypeName(i)); //System.out.println(rsmetadata.getColumnDisplaySize(i)); } 元数据在MySQL中创建一个表。但是当我执行语句时,我收到了一个错误:

  

异常isjava.sql.SQLSyntaxErrorException:为'date_time'指定的精度太大19。最高为6。

1 个答案:

答案 0 :(得分:0)

看起来您在timestamp字段上指定了精度值。根据{{​​3}},你真的无法做到这一点。我建议在那里放一个条件语句,以检查该字段是否为时间戳字段,并避免使用精度设置。