Eu estou tentando criar uma tabela se ela não existir, mas me deparo sempre com o mesmo erro, então vim pedir ajuda pra todos.
A conexão com o MySQL está normal e, aparentemente, a mesma query é executada em SQLite, mas no MySQL não.
Este é o erro que o console apresenta:
Spoiler
[12:23:16 WARN]: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ''tb'('ai' INTEGER PRIMARY KEY AUTOINCREMENT, 'tnn' VARCHAR NOT NULL, 'vnn' VARCH' at line 1
[12:23:16 WARN]: at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
[12:23:16 WARN]: at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
[12:23:16 WARN]: at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
[12:23:16 WARN]: at java.lang.reflect.Constructor.newInstance(Unknown Source)
[12:23:16 WARN]: at com.mysql.jdbc.Util.handleNewInstance(Util.java:407)
[12:23:16 WARN]: at com.mysql.jdbc.Util.getInstance(Util.java:382)
[12:23:16 WARN]: at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1052)
[12:23:16 WARN]: at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3593)
[12:23:16 WARN]: at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3525)
[12:23:16 WARN]: at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1986)
[12:23:16 WARN]: at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2140)
[12:23:16 WARN]: at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2626)
[12:23:16 WARN]: at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:2111)
[12:23:16 WARN]: at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2407)
[12:23:16 WARN]: at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2325)
[12:23:16 WARN]: at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2310)
[12:23:16 WARN]: at com.ygor.iProject.ConnectionManager.createKeyTable(ConnectionManager.java:83)
[12:23:16 WARN]: at com.ygor.iProject.Main.onEnable(Main.java:10)
[12:23:16 WARN]: at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:321)
[12:23:16 WARN]: at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:340)
[12:23:16 WARN]: at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:405)
[12:23:16 WARN]: at org.bukkit.craftbukkit.v1_8_R3.CraftServer.loadPlugin(CraftServer.java:357)
[12:23:16 WARN]: at org.bukkit.craftbukkit.v1_8_R3.CraftServer.enablePlugins(CraftServer.java:317)
[12:23:16 WARN]: at org.bukkit.craftbukkit.v1_8_R3.CraftServer.reload(CraftServer.java:741)
[12:23:16 WARN]: at org.bukkit.Bukkit.reload(Bukkit.java:535)
[12:23:16 WARN]: at org.bukkit.command.defaults.ReloadCommand.execute(ReloadCommand.java:25)
[12:23:16 WARN]: at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:141)
[12:23:16 WARN]: at org.bukkit.craftbukkit.v1_8_R3.CraftServer.dispatchCommand(CraftServer.java:641)
[12:23:16 WARN]: at org.bukkit.craftbukkit.v1_8_R3.CraftServer.dispatchServerCommand(CraftServer.java:627)
[12:23:16 WARN]: at net.minecraft.server.v1_8_R3.DedicatedServer.aO(DedicatedServer.java:412)
[12:23:16 WARN]: at net.minecraft.server.v1_8_R3.DedicatedServer.B(DedicatedServer.java:375)
[12:23:16 WARN]: at net.minecraft.server.v1_8_R3.MinecraftServer.A(MinecraftServer.java:654)
[12:23:16 WARN]: at net.minecraft.server.v1_8_R3.MinecraftServer.run(MinecraftServer.java:557)
[12:23:16 WARN]: at java.lang.Thread.run(Unknown Source)
Meu código para a criação da tabela:
Spoiler
PreparedStatement stm = null;
try {
stm = con.prepareStatement("CREATE TABLE IF NOT EXISTS tb(ai INTEGER PRIMARY KEY AUTOINCREMENT, tnn VARCHAR NOT NULL, vnn VARCHAR NOT NULL, inn INTEGER NOT NULL)");
stm.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}
Pergunta
Ygor
Olá,
Eu estou tentando criar uma tabela se ela não existir, mas me deparo sempre com o mesmo erro, então vim pedir ajuda pra todos.
A conexão com o MySQL está normal e, aparentemente, a mesma query é executada em SQLite, mas no MySQL não.
Este é o erro que o console apresenta:
[12:23:16 WARN]: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ''tb'('ai' INTEGER PRIMARY KEY AUTOINCREMENT, 'tnn' VARCHAR NOT NULL, 'vnn' VARCH' at line 1
[12:23:16 WARN]: at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
[12:23:16 WARN]: at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
[12:23:16 WARN]: at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
[12:23:16 WARN]: at java.lang.reflect.Constructor.newInstance(Unknown Source)
[12:23:16 WARN]: at com.mysql.jdbc.Util.handleNewInstance(Util.java:407)
[12:23:16 WARN]: at com.mysql.jdbc.Util.getInstance(Util.java:382)
[12:23:16 WARN]: at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1052)
[12:23:16 WARN]: at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3593)
[12:23:16 WARN]: at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3525)
[12:23:16 WARN]: at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1986)
[12:23:16 WARN]: at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2140)
[12:23:16 WARN]: at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2626)
[12:23:16 WARN]: at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:2111)
[12:23:16 WARN]: at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2407)
[12:23:16 WARN]: at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2325)
[12:23:16 WARN]: at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2310)
[12:23:16 WARN]: at com.ygor.iProject.ConnectionManager.createKeyTable(ConnectionManager.java:83)
[12:23:16 WARN]: at com.ygor.iProject.Main.onEnable(Main.java:10)
[12:23:16 WARN]: at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:321)
[12:23:16 WARN]: at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:340)
[12:23:16 WARN]: at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:405)
[12:23:16 WARN]: at org.bukkit.craftbukkit.v1_8_R3.CraftServer.loadPlugin(CraftServer.java:357)
[12:23:16 WARN]: at org.bukkit.craftbukkit.v1_8_R3.CraftServer.enablePlugins(CraftServer.java:317)
[12:23:16 WARN]: at org.bukkit.craftbukkit.v1_8_R3.CraftServer.reload(CraftServer.java:741)
[12:23:16 WARN]: at org.bukkit.Bukkit.reload(Bukkit.java:535)
[12:23:16 WARN]: at org.bukkit.command.defaults.ReloadCommand.execute(ReloadCommand.java:25)
[12:23:16 WARN]: at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:141)
[12:23:16 WARN]: at org.bukkit.craftbukkit.v1_8_R3.CraftServer.dispatchCommand(CraftServer.java:641)
[12:23:16 WARN]: at org.bukkit.craftbukkit.v1_8_R3.CraftServer.dispatchServerCommand(CraftServer.java:627)
[12:23:16 WARN]: at net.minecraft.server.v1_8_R3.DedicatedServer.aO(DedicatedServer.java:412)
[12:23:16 WARN]: at net.minecraft.server.v1_8_R3.DedicatedServer.B(DedicatedServer.java:375)
[12:23:16 WARN]: at net.minecraft.server.v1_8_R3.MinecraftServer.A(MinecraftServer.java:654)
[12:23:16 WARN]: at net.minecraft.server.v1_8_R3.MinecraftServer.run(MinecraftServer.java:557)
[12:23:16 WARN]: at java.lang.Thread.run(Unknown Source)
Meu código para a criação da tabela:
PreparedStatement stm = null;
try {
stm = con.prepareStatement("CREATE TABLE IF NOT EXISTS tb(ai INTEGER PRIMARY KEY AUTOINCREMENT, tnn VARCHAR NOT NULL, vnn VARCHAR NOT NULL, inn INTEGER NOT NULL)");
stm.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}
Se alguém puder me ajudar, eu agradeço!
Obrigado pela sua atenção neste tópico!
Editado por YgorLink para o comentário
Compartilhar em outros sites
4 respostass a esta questão
Posts Recomendados