创建表时MySQLSyntaxErrorException

时间:2011-01-10 12:50:40

标签: java mysql database

我对使用Java的MySQL相当新,但是我已经执行了一些成功的INSERT查询,但似乎无法在不获取MySQLSyntaxErrorException异常的情况下执行CREATE TABLE查询。我的代码如下:

Statement stmt;
String url = "jdbc:mysql://localhost:3306/mysql";
Connection con = DriverManager.getConnection(url, "root", "password");
stmt = con.createStatement();
String tblSQL = "CREATE TABLE IF NOT EXISTS \'dev\'.\'testTable\' (\n"
                + " \'id\' int(11) NOT NULL AUTO_INCREMENT,\n"
                + " \'date\' smallint(6) NOT NULL\n"
                + ") ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;";
stmt.executeUpdate(tblSQL);
stmt.close();
con.close();

错误如下:

com.mysql.jdbc.exceptions.jdbc4.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 ''dev'.'testTable' (
   'id' int(11) NOT NULL AUTO_INCREMENT,
   'date' smallint(6) N' at line 1

如果有人能在这个查询中发现错误,我将不胜感激,因为我已经尝试在phpMyAdmin中执行此操作并且它可以正常工作。

1 个答案:

答案 0 :(得分:3)

\n会使按下输入效果:)使其像

String tblSQL = "CREATE TABLE IF NOT EXISTS `dev`.`testTable`"
            + "("
            + "id INTEGER(11) NOT NULL AUTO_INCREMENT primary key,"
            + "date smallint(6) NOT NULL"
            + ")"
            + "ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;";