• Es freut uns dass du in unser Minecraft Forum gefunden hast. Hier kannst du mit über 130.000 Minecraft Fans über Minecraft diskutieren, Fragen stellen und anderen helfen. In diesem Minecraft Forum kannst du auch nach Teammitgliedern, Administratoren, Moderatoren , Supporter oder Sponsoren suchen. Gerne kannst du im Offtopic Bereich unseres Minecraft Forums auch über nicht Minecraft spezifische Themen reden. Wir hoffen dir gefällt es in unserem Minecraft Forum!

MySQL Problem

DJPX

Kuhfänger
Registriert
20 Juli 2015
Beiträge
97
Alter
29
Diamanten
322
Minecraft
IDJPXI
Hallo,
Ich habe ein Problem mit MySQL ich benutze den MySQL Connector (5.1.41)
Ich möchte gerne diesen MySQL Befehl "CREATE TABLE IF NOT EXISTS Test (ID INT PRIMARY KEY,UUID VARCHAR(100))
ausführen aber es funktioniert immer nur so CREATE TABLE Test (ID INT PRIMARY KEY,UUID VARCHAR(100))

Code:
// Daten zum verbinden zum MySQL Server
MySQL my_SQL = new MySQL("localhost","database","user","passwort"); // nicht die echten Daten
// Erstellt Tabelle in der Datenbank wenn noch nicht vorhanden
my_SQL.update("CREATE TABLE IF NOT EXISTS "+"Test "+"(ID INT PRIMARY KEY,UUID VARCHAR(100))");

Code:
public void update(String query)
    {
        try
        {
            // Führt Update Befehle aus
            Statement statement = connection.createStatement();
            statement.executeUpdate(query);
            statement.close();
        }
        catch (SQLException e)
        {
            // falls Fehler auf treten wird die Verbindung erneut aufgebaut
            System.out.println("[MySQL] update has failed");
            connect();
        }
    }

Kennt jemand das Problem warum CREATE TABLE IF NOT EXISTS nicht geht?

Mfg DJPX
 
Zuletzt bearbeitet:

DJPX

Kuhfänger
Registriert
20 Juli 2015
Beiträge
97
Alter
29
Diamanten
322
Minecraft
IDJPXI
jetzt geht es aber es hatte davor auch keine Fehlermeldung ausgespuckt, aber jetzt macht eine andere Stelle Probleme

Code:
my_SQL.update("INSERT INTO Test (UUID,WERT) VALUES ('123456)");

Fehlermeldung: java.sql.SQLException: Field 'ID' doesn't have a default value

Ich weis leider nicht was man machen muss (also die genaue Syntax) hab schon nach geschaut aber hat nichts geholfen
 

Baba43

Ehem. Teammitglied
Ehem. Teammitglied
Registriert
5 November 2012
Beiträge
869
Diamanten
60
Minecraft
baba43

JTK222

Threadripper
Registriert
5 September 2013
Beiträge
1.150
Diamanten
323
Minecraft
JTK222
Ich kann dir Grundlegend 2 Tipps geben:
1. Schreib alle namen für Datenbanken,Tabellen und Werte klein dass macht es einfacher die namen aus den Befehlen herauszulesen.
Desweiteren ist an deinem Befehl einiges falsch:
Code:
INSERT INTO Test (UUID,WERT) VALUES ('123456', 'wert')
Wäre da bereits richtiger. Evtl. könnten wir dir mit den Befehlen besser helfen könntest du uns ein bild von deinem ERM posten (einfach googlen wenn du nicht weißt was dass ist). Denn wie Baba bereits erwähnt hat musst du wahrscheinlich noch mehrere Werte hinzufügen.
 

DJPX

Kuhfänger
Registriert
20 Juli 2015
Beiträge
97
Alter
29
Diamanten
322
Minecraft
IDJPXI
sorry da oben ist noch der alte Code
Code:
my_SQL.update("CREATE TABLE IF NOT EXISTS test (ID INT(11) NOT NULL DEFAULT '0' AUTO_INCREMENT,PRIMARY KEY (ID) ,uuid VARCHAR(100) NOT NULL,wert INT(8))");
my_SQL.update("ALTER TABLE test AUTO_INCREMENT=1;");
my_SQL.update("INSERT INTO test (uuid,wert) VALUES ('123456','6');");

es gibt kein richtiges ERM es ist nur mal ein Test um in MySQL mit dem MySQL Connector ein bischen rumzuspielen so das ich ihn dann richtig verwenden kann
 

JTK222

Threadripper
Registriert
5 September 2013
Beiträge
1.150
Diamanten
323
Minecraft
JTK222
ok dass geht auch,
also richtig wäre es:
Code:
my_SQL.update("INSERT INTO test (ID, uuid, wert) VALUES (NULL, '123456', '6');");
Jedenfalls hoffe ich es :p
übrigens bei Auto Increment benötigst du keinen Default Wert. (Beim erstellen der Tabelle)
Not Null fällt Theoretisch auch weg, jedoch sollte dass jemand beurteilen der sich wirklich damit auskennt D:
 

Baba43

Ehem. Teammitglied
Ehem. Teammitglied
Registriert
5 November 2012
Beiträge
869
Diamanten
60
Minecraft
baba43
Folge meinem Link und mache es einfach so, wie es in dem Beispiel steht.

Alternativ lies die Fehlermeldung und du kommst selbst darauf, was an deinem CREATE-Statement falsch ist.
 
Oben