2015-04-25 3 views
0

Я пытаюсь создать простую таблицу с помощью jdbc, но это дает мне ошибку. Это мой код:Ошибка MYSQL с внешним ключом

public class Test { 
    public static void main(String[] args) throws ClassNotFoundException, SQLException { 
     Class.forName("com.mysql.jdbc.Driver"); 
     Connection con = DriverManager.getConnection("jdbc:mysql://localhost/javabook","scott","tiger"); 
     System.out.println("part 1:DONE !"); 
     Statement statement = con.createStatement(); 
     String query = "create table Enrollment (ssn char(9), courseId char(5), dateRegistered date, grade char(2)"+ 
        "primary key (ssn, courseId), foreign key (ssn) references Student (ssn), foreign key (courseId) references Course(courseId)"; 

     statement.executeUpdate(query); 
     System.out.println("part 2:DONE !"); 
    } 
} 

Я получаю эту ошибку:

Exception in thread "main" com.mysql.jdbc.exceptions.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1 
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:936) 
    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2985) 
    at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1631) 
    at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1723) 
    at com.mysql.jdbc.Connection.execSQL(Connection.java:3277) 
    at com.mysql.jdbc.Statement.executeUpdate(Statement.java:1402) 
    at com.mysql.jdbc.Statement.executeUpdate(Statement.java:1317) 
    at Test.main(Test.java:17) 
+1

Вам не хватает запятой после 'grade char (2)'. – Barmar

+0

Да ... вы правы. Но теперь это дает мне другую ошибку :( – aNNgeL0

+0

Я нашел ошибку. Я не могу закрыть главный паратет в конце. Спасибо за вашу помощь! – aNNgeL0

ответ

0

Вы пропустили закрывающую скобку ')' в вашем коде. Используйте инструкцию ниже в коде.

Строка запроса = "создать таблицу Зачисление (Ssn полукокса (9), courseId обугленного (5), дата dateRegistered, класс голец (2)" + «первичный ключ (ПЛА, courseId), внешний ключ (SSN) ссылки Student (ssn), внешний ключ (курс). Курс (курс)) »;

Пожалуйста, убедитесь, что закрыты круглые скобки.

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