Datenbank Fehler #1293 - Incorrect table definition;........?

1 Antwort

Ja, das ist ein altes Ärgernis bei MySQL. Die Fehlermeldung sagt alles. Du kannst in einer Tabelle nur einmal mit CURRENT_TIMESTAMP eine automatische Zeit verwenden. Keine Ahnung wieso das so sein muß.

Du musst Deine Tabellendefinition entsprechend ändern, wenn Du MySQL verwenden willst/musst.

Das sollte wohl irgendwann mal geändert/verbessert werden, wenn ich mich recht erinnere. Weiß leider nicht mehr ob und ab welcher Version das geht.

Warum brauche ich bei scanf das \n? Wozu ist das gut?

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define TEXTSIZE 20
 
typedef struct LISTENEINTRAG {
  char szText[TEXTSIZE];
} LISTENEINTRAG;
 
typedef struct {
  LISTENEINTRAG eintrag[3];
  int index;
  int iGroesse;
} LISTE;
 
void push(LISTE* Liste, char szText[TEXTSIZE]) {
  // ->szText
  strcpy(((Liste->eintrag + Liste->index)).szText, szText);
  Liste->index++;
  printf("Neue Groesse %li byte.\n", sizeof(Liste));
}
 
void pop(LISTE* Liste) {
  Liste->index--;
  printf("Eintrag gefunden mit Text: %s", ((Liste->eintrag + Liste-> index)).szText);
  strcpy(((Liste->eintrag + Liste->index)).szText, "");
  printf("Neue Groesse %li byte.\n\n", sizeof(Liste));
}
 
int main() {
  LISTE Liste;
  Liste.iGroesse = sizeof(Liste);
  Liste.index = 0;
 
  char puffer[TEXTSIZE];
  char* c = NULL;
  int iWeiter = 0;
 
  do {
    printf("Neuer Eintrag (1) oder beenden (0)?\n");
    scanf("%i\n", &iWeiter);

    if (iWeiter) {
      printf("Zu speichernden Text eingeben: ");
      fflush(stdin);
      c = fgets(puffer, TEXTSIZE, stdin);

      if (c == NULL) {
        return 1;
      }

      push(&Liste, puffer);
    }
  } while (iWeiter);
   
  do {
    pop(&Liste);
  } while (Liste.index > 0);

  return 0;
}

Warum brauche ich bei

scanf("%i\n", &iWeiter);

das \n? Wozu ist das gut?

...zur Frage

SQL - Datei -> Mehrere Tabellen mit einmal erstellen?!

Ich versuche mit folgendem SQL-Befehl vorerst 3 Tabellen zu erstellen, aber das will er wohl nicht (missing or invalid option)

CREATE TABLE Kategorie ( KID integer PRIMARY KEY, Kname varchar(30) NOT NULL, Beschreibung varchar(80) ), Buch ( BID integer PRIMARY KEY, ISBN varchar(17) NOT NULL, Name varchar(30) NOT NULL,
Autor varchar(30) NOT NULL, Beschreibung varchar(80) ), Autor( Name varchar(30) NOT NULL );

Oder kann man Tabellen nur einzeln erstellen? Wollt es aber in einer ausführbaren sql-Datei speichern. ;(

...zur Frage

Wie kann ich mit Java einen Integer aus meiner MySQL-DB abfragen?

Mein Code zum Updaten: 

CREATE IF TABLE NOT EXISTS Wartung(ONOFF int) 

Wie kann ich jetzt den ResultSet dazu bekommen? Was muss ich abfragen? 

SELECT FROM Wartung 

... und weiter? Und wie bekomme ich dann aus dem ResultSet den Integer ONOFF wieder? Also dann Integer ONOFF = ResultSet?

...zur Frage

SQL Tabelle "Bestellung" - eine Bestellung mit mehreren Produkten, wie schreiben?

Ich möchte eine Tabelle Bestellung erstellen in der ein Kunde mehrere Produkte bestellen kann, dh es gibt eine Bestell-Nr hinter der liegen ein oder mehrere Produkte. Wie kann ich das schreiben in SQL?

So könnte der Kunde nur ein Produkt kaufen:

CREATE TABLE Bestellung {

Bestell-Nr INT PRIMARY KEY NOT NULL AUTO_INCREMENT,

Produkt-Nr INT,

Anzahl INT(2) NOT NULL,

Bestelldatum DATE,

Empfangsdatum DATE,

  FOREIGN KEY (Produkt-Nr)

   REFERENCES Produkt(Produkt-Nr)

);

...zur Frage

MSSQL sp_send_dbmail mit mehr als 4000 Zeichen im Body?

Hallo. Ich versuche eine Email in einer Stored Procedure auf dem MS SQL Server zu generieren. Die Variable in der ich den Text zusammenbaue ist vom Typ VARCHAR(MAX). Nun kann ein VARCHAR leider nur bis zu 4000 Zeichen aufnehmen. Sobald die Zeichenzahl überschritten wird, ist der Inhalt der Variable NULL. Ich habe auch noch keine Möglichkeit gefunden mehrere Variablen beim Versenden der Mail aus Body zu konkatenieren.

Kennt da jemand einen Trick?

Danke schonmal Simon

...zur Frage

Wieso funktioniert dieses Minecraft Plugin nicht?

Hi Leute,

ich habe hier ein Minecraft Plugin, dass Spielernamen aus einer Datenbank auslesen soll (mit dem Command /player wird alles gestartet). Wenn ich aber /player eingebe, kommt sowas wie com.mysql.jdbc.JBDC4ResultSet@23bd1b13.

What did I do wrong???

LG, hier ist der Code:

@Override
public void onEnable() {  
    getCommand("player").setExecutor(this);
    System.out.println("Plugin aktiviert");
}


@Override
public void onDisable() {
    System.out.println("Plugin deaktiviert");
}

@Override
public boolean onCommand(CommandSender sender, Command command, String cmd, String[] args) {

    connect();
    createTable();
    ResultSet rs = getResult("SELECT player FROM player WHERE server = 'defense' and active = 'true'");
    System.out.println("[DefenseLogin] Player: " + rs);
    
    return false;
}

  public static String username = "***";
  public static String password = "***";
  public static String database ="***";
  public static String host = "***";
  public static String port = "3306";
  public static Connection con;
  
  public static void connect()
  {
    if (!isConnected()) {
      try
      {
        con = DriverManager.getConnection("jdbc:mysql://" + host + ":" + port + "/" + database, username, password);
        Bukkit.getConsoleSender().sendMessage("MySQL Verbindung aufgebaut");
      }
      catch (SQLException e)
      {
        e.printStackTrace();
      }
    }
  }
  
  public static void close()
  {
    if (isConnected()) {
      try
      {
        con.close();
        Bukkit.getConsoleSender().sendMessage("MySQL Verbindung geschlossen");
      }
      catch (SQLException e)
      {
        e.printStackTrace();
      }
    }
  }
  
  public static boolean isConnected()
  {
    return con != null;
  }
  
  public static void createTable()
  {
    if (isConnected()) {
      try
      {
        con.createStatement().executeUpdate("CREATE TABLE IF NOT EXISTS player (ID INTEGER NOT NULL, player VARCHAR(20), server VARCHAR(20), active VARCHAR(10), PRIMARY KEY(ID))");
      }
      catch (SQLException e)
      {
        e.printStackTrace();
      }
    }
  }
  
  public static void update(String qry)
  {
    if (isConnected()) {
      try
      {
        con.createStatement().executeUpdate(qry);
      }
      catch (SQLException e)
      {
        e.printStackTrace();
      }
    }
  }
  public static ResultSet getResult(String qry)
  {
    if (isConnected()) {
      try
      {
        return con.createStatement().executeQuery(qry);
      }
      catch (SQLException e)
      {
        e.printStackTrace();
      }
    }
    return null;
  }

}
...zur Frage

Was möchtest Du wissen?