Announcement

Collapse
No announcement yet.

#1064 - Fehler in der SQL-Syntax.

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • #1064 - Fehler in der SQL-Syntax.

    Hallo zusammen. Ich verzweifele daran, obwohl ich alles nach Handbuch gemacht habe und auch die verschiedensten Variationen probiert habe.

    <code>
    CREATE TRIGGER ch8839_mecker_ecke.bi_dates BEFORE INSERT ON `wp_forum_posts`
    FOR EACH ROW
    BEGIN

    IF `wp_forum_posts`.`date` IS NULL THEN
    SET NEW.`wp_forum_posts`.`date` = CURRENT_DATE();
    END IF;

    IF `wp_forum_posts`.`date_edit` IS NULL THEN
    SET NEW.`wp_forum_posts`.`date_edit` = CURRENT_DATE();
    END IF;
    </code

    .. und ich kann selbst keine DECLARE Variable ohne Fehlermeldung hinzufügen, um den Trigger wenigstens zu testen.

    Wo liegt der Fehler?

    Danke Klaus Wilde

  • #2
    SET NEW.`date` = CURRENT_DATE();
    und
    SET NEW.`date_edit` = CURRENT_DATE();

    Des Weiteren benutzt man keine Schlüsselwörter/Leerzeichen/Umlaute als Spalten-/Tabellennamen und erspart sich dann das ständige unnötige maskieren

    DECLARE:
    Nach
    Code:
    BEGIN
    DECLARE xyz integer;
    SET @xyz=1;
    Code:
    DECLARE abc DATE;
    set @ abc=cast ('2013-01-17' as DATE);
    Zuletzt editiert von Christian Marquardt; 22.06.2024, 13:26.
    Christian

    Comment


    • #3
      Hallo Christian. Danke für deine Antwort, aber es hat die gleiche Fehlermeldung wie vorher.

      Der Code sieht jetzt so aus:

      CREATE TRIGGER ch8839_mecker_ecke.bi_dates BEFORE INSERT ON wp_forum_posts
      FOR EACH ROW
      BEGIN

      IF `date` IS NULL THEN
      SET NEW.`date` = CURRENT_DATE();
      END IF;

      IF `date_edit` IS NULL THEN
      SET NEW.`date_edit` = CURRENT_DATE();

      END IF;

      und das sind Screenshots dazu:

      https://mecker-ecke.com/wp-content/u...LERMELDUNG.jpg
      https://mecker-ecke.com/wp-content/u...ts-TABELLE.jpg

      Am Attributnamen "date" kann ich nichts machen, da der vom Plugin Hersteller gegeben ist.

      Hast du noch eine Idee was das sein Könnte? Klaus

      Comment


      • #4
        Ich vermute das ; ist das Problem und nicht dein Spalten name. Das Semikolon beendet einen Befehl die willst aber in deinem Trigger mehrere absetzen also mußt du den Delimeter umdefinieren damit er am ; nicht einfach Schluß macht und dann über unvollständigen Code jammert.


        Siehe https://dev.mysql.com/doc/refman/8.4...er-syntax.html für Beispiele.

        Comment

        Working...
        X