2015-05-14 95 views
-1
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)); 
} 

我试图在使用ResultSet元数据在MySQL中创建表。但是,当我执行该语句,我得到一个错误:尝试使用Java ResultSet元数据创建MySQL表时SQLSyntaxErrorException

Exception isjava.sql.SQLSyntaxErrorException: Too big precision 19 specified for 'date_time'. Maximum is 6.

+1

我们不知道您尝试过什么。所以很难给出解决方案 – silentprogrammer

+2

请提供我们示例代码。另请参阅:[如何问](http://stackoverflow.com/help/how-to-ask) –

+0

我无法粘贴我的代码 –

回答

0

看起来你是在一个timestamp字段中指定的精度值。根据this,你真的不能这样做。我建议在那里放一个条件语句来检查这个字段是否是一个时间戳字段,如果是的话,避免使用精度设置。

相关问题