私はちょうど私のSQLデータベースのテーブルに簡単な挿入をしたいです。それにもかかわらず、私はいくつかの方法で試してみましたが、このエラーイベントが発生します。 id "idValues"の単純な列と "value"というint値の列を使用して、データベース "test"に "values"という名前のテーブルがあります。 IDは1、値(1/1)は1の単純なレコードを挿入したいだけです。特定のバージョンに問題がありますか?両方Values
とvalue
Java - SQL構文にエラーがあります。
public class Driver {
public static void main(String[] args) {
// TODO Auto-generated method stub
try {
try {
Class.forName("com.mysql.jdbc.Driver");
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Connection myConn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test?autoReconnect=true&useSSL=false", "root", "rmi1337");
Statement statement = myConn.createStatement();
String sql = "INSERT INTO values " + "(idValues, value)" + "VALUES (1, 1)";
statement.executeUpdate(sql);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
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 'values(idValues, value)VALUES (1, 1)' at line 1
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
at java.lang.reflect.Constructor.newInstance(Unknown Source)
at com.mysql.jdbc.Util.handleNewInstance(Util.java:425)
at com.mysql.jdbc.Util.getInstance(Util.java:408)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:943)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3973)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3909)
at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2527)
at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2680)
at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2486)
at com.mysql.jdbc.StatementImpl.executeUpdateInternal(StatementImpl.java:1552)
at com.mysql.jdbc.StatementImpl.executeLargeUpdate(StatementImpl.java:2607)
at com.mysql.jdbc.StatementImpl.executeUpdate(StatementImpl.java:1480)
at jdbcdemo.Driver.main(Driver.java:22)
tablenameとしての 'values'は良い選択ではないと思います。 – modsfabio
' values'はSQLのキーワードです。あなたのテーブルを "値"と呼ぶつもりなら(そして私はそうしないことをお勧めします)、それをエスケープする必要があります。例えば'\' values \ '' – khelwood
ありがとう、それを考えたはずです!しかし、テーブルを作成するときにも私にこのことを教えてもらえました。 –