2015-05-14 3 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)); 
} 

Я пытаюсь создать таблицу в MySQL с помощью ResultSet метаданных. Но в то время я выполнение инструкции я получаю сообщение об ошибке:SQLSyntaxErrorException при попытке создать таблицу MySQL с метаданными ResultSet Java

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, вы действительно не можете этого сделать. Я бы предложил поставить условный оператор там, чтобы проверить, является ли поле поле временной метки и не использовать настройку точности, если это так.

Смежные вопросы