2015-05-14 92 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,你真的不能這樣做。我建議在那裏放一個條件語句來檢查這個字段是否是一個時間戳字段,如果是的話,避免使用精度設置。

相關問題