2014-02-02 1 views
0

Использование JDBC,Почему он не создает таблицу в базе данных, если вы не объявляете первичный ключ?

Этот код работает, когда я объявляю, что поле «id» является первичным ключом.

String sql = "CREATE TABLE REGISTRATION1 " + 
      "(id INTEGER not NULL, " + 
      " first VARCHAR(255), " + 
      " last VARCHAR(255), " + 
      " age INTEGER, " + 
      " PRIMARY KEY (id))"; 
stmt.executeUpdate (sql); 

Но когда я удалить объявление PRIMARY KEY (id) и not NULL теги.

String sql = "CREATE TABLE REGISTRATION2 " + 
      "(id INTEGER, " + 
      " first VARCHAR(255), " + 
      " last VARCHAR(255), " + 
      " age INTEGER"); 
stmt.executeUpdate (sql); 
+0

@MahmoudEskandari english please? –

+0

@ T.J.Позвольте мне плохо, а как насчет первичного ключа? –

+0

Нет необходимости в редактировании сейчас, вы были правы, он не компилировался - из-за изменения в * конце * утверждения (я смотрел на изменение в начале). –

ответ

3

Это не компилируется, потому что у вас есть косую Parenthèse, которые не должны быть там:

" age INTEGER"); 

должен быть

" age INTEGER)"; 

Это не имеет ничего общего с содержанием строка SQL, которую компилятор Java не волнует.

Обратите внимание, что чтение сообщения об ошибке из компилятора помогает определить, что и где происходит ошибка. Вы должны прочитать сообщение и опубликовать его, если не можете его понять, вместо того, чтобы неправильно догадаться, в чем проблема.

+0

Большое спасибо! Это была ошибка. –

0

Ваша скобка находится вне строкового запроса. Какое построение и передача неправильной строки для обработки.

String sql = "CREATE TABLE REGISTRATION2 " + 
      "(id INTEGER, " + 
      " first VARCHAR(255), " + 
      " last VARCHAR(255), " + 
      " age INTEGER)"; 


    System.out.println("Sql Query is ="+sql); 
    //Now Execute you query here 

Вы также можете найти подробную информацию об ошибках/исключение, если вы печатаете запрос SQL перед тем executing.This оператора печати покажет вам точный запрос, который вы собираетесь выполнить.

Надеюсь, это поможет вам.

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