Ir para conteúdo
  • 0

Erro ao criar tabela


Ygor

Pergunta

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:

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();
        }
 

Se alguém puder me ajudar, eu agradeço!

Obrigado pela sua atenção neste tópico!

Editado por Ygor
Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 0
Em 27/05/2020 em 11:49, GhostTheWolf disse:

VARCHAR(tamanho)

Em SQL não dá esse problema, utilizo o VARCHAR sem problemas

Mas, eu fiz o teste e coloquei VARCHAR(255), o erro persiste do mesmo jeito.

@Edit

Já solucionei o problema, o que estava errado era simplesmente o AUTOINCREMENT que estava sem underline 

Editado por Ygor
Link para o comentário
Compartilhar em outros sites

  • 0
5 horas atrás, Ygor disse:

Em SQL não dá esse problema, utilizo o VARCHAR sem problemas

Mas, eu fiz o teste e coloquei VARCHAR(255), o erro persiste do mesmo jeito.

@Edit

Já solucionei o problema, o que estava errado era simplesmente o AUTOINCREMENT que estava sem underline 

AUTOINCREMENT e o tamanho também...

Você vai ter que fazer uma query para SQLite e outra para MySQL, pois o SQLite reconhece apenas sem underline. 

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.
×
×
  • Criar Novo...