Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用外键时出现MYSQL错误_Mysql - Fatal编程技术网

使用外键时出现MYSQL错误

使用外键时出现MYSQL错误,mysql,Mysql,我试图使用jdbc创建一个简单的表,但它给了我一个错误。这是我的代码: public class Test { public static void main(String[] args) throws ClassNotFoundException, SQLException { Class.forName("com.mysql.jdbc.Driver"); Connection con = DriverManager.getConnection("jdb

我试图使用jdbc创建一个简单的表,但它给了我一个错误。这是我的代码:

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)

代码中缺少右括号“)”。在代码中使用下面的语句

String query=“创建表注册(ssn字符(9)、courseId字符(5)、日期注册日期、成绩字符(2)”+ “主键(ssn,courseId),外键(ssn)参考学生(ssn),外键(courseId)参考课程(courseId))”


请确认右括号

您在
等级字符(2)
后缺少一个逗号。是的。。。你是对的。但现在它给了我另一个错误:(我发现了错误。我还没有在最后关闭主屏幕。谢谢你的帮助!