Twilo: Es sollte ein Primärschlüssel ...

Hallo,

ich habe eine DB-Abfrage

SELECT DISTINCT k._id, k._parent_id, k._art, k._name
FROM kommentare AS k
LEFT JOIN ereignis AS e ON k._parent_id = e._id
LEFT JOIN anzeige AS a ON k._parent_id = a._id
WHERE k._freigeschaltet = "1"
AND k._geloescht = "0"
AND
(
  (
    k._art = "ereignis"
    AND e._geloescht = "0"
    AND e._freigeschaltet = "1"
  )
  OR
  (
    k._art = "gedenkanzeige"
    AND a._geloescht = "0"
    AND a._freigeschaltet = "1"
  )
)
ORDER BY k._datum DESC
LIMIT 10

nun sagt mir phpMyAdmin
"Es sollte ein Primärschlüssel für diese Tabelle definiert werden."

Tabelle ereignis, anzeige und kommentare haben ein Primärschlüssel
bei allen 3 lautet er "_id"

welche Tabelle meint phpMyAdmin nun?

mfg
Twilo

  1. Hallo Twilo!

    nun sagt mir phpMyAdmin
    "Es sollte ein Primärschlüssel für diese Tabelle definiert werden."

    welche Tabelle meint phpMyAdmin nun?

    Ich habe keine Ahnung, würde Dich aber mal auf das deutsche Anwenderforum von phpMyAdmin verweisen.
    Dort sollte Dir mit Sicherheit auch weitergeholfen werden können, denn ich kann aufgrund Deine Anfrage nicht sagen, ob das Problem bei MySQL oder bei phpMyAdmin liegt oder sonstwas.

    MfG
    Götz

    --
    Losung für Dienstag, 11. Januar 2005
    Wer der Gerechtigkeit und Güte nachjagt, der findet Leben und Ehre. (Sprüche 21,21)
    Jesus spricht: Trachtet zuerst nach dem Reich Gottes und nach seiner Gerechtigkeit, so wird euch das alles zufallen. (Matthäus 6,33)
    (Losungslink)
    1. Hallo,

      Dort sollte Dir mit Sicherheit auch weitergeholfen werden können, denn ich kann aufgrund Deine Anfrage nicht sagen, ob das Problem bei MySQL oder bei phpMyAdmin liegt oder sonstwas.

      das ganze sieht so aus

      wenn ich mit der Maus über das Fragezeichen fahre, kommt diese Meldung

      ich werde mich aber mal an dieses Forum wenden

      mfg
      Twilo

      1. Hallo Twilo,

        das ganze sieht so aus

        wenn ich mit der Maus über das Fragezeichen fahre, kommt diese Meldung

        die gleiche Meldung hatte ich gerade auch - wenn ich in einem Query die Primärschlüsselspalte nicht mit abfrage, baut phpmyadmin den DELETE-Query aus den Spalten die abgefragt wurden zusammen (»WHERE spalte1 = '...' AND spalte2 = '...' AND spalte3 = '...' [usw.]«). Da kommt es dann vor, dass dass in manchen Zeilen statt dem roten Kreuz ein '?' mit eben dem Titel ist[1]. Wenn ich dann allerdings die Primärschlüsselspalte auch mit abfrage (im ansonsten gleichen Query) gibt es überall das rote Kreuz und zum Löschen wird auch nur die Primärschlüsselspalte verwendet (»WHERE id = ###«).
        Ich vermute also einfach mal, dass phpMyAdmin bei deinem Query keine eindeutige Möglichkeit findet den ausgegebenen Datensatz zu löschen und deshalb gibt es die Meldung aus.

        Grüße aus Nürnberg
        Tobias

        [1] nach welchem System das Kreuz oder das '?' kommt, weiß ich allerdings nicht ...

        1. Hallo,

          Ich vermute also einfach mal, dass phpMyAdmin bei deinem Query keine eindeutige Möglichkeit findet den ausgegebenen Datensatz zu löschen und deshalb gibt es die Meldung aus.

          die erste Spalte ist aber die primary Spalte "_id"
          er hat doch die ID 68 z.B.
          mehr braucht er doch nicht um den Beitrag zu löschen ;-)

          was mich wundert...
          er kann ihn bearbeiten, aber nicht löschen *g*

          mfg
          Twilo

          1. Hallo Twilo,

            Ich vermute also einfach mal, dass phpMyAdmin bei deinem Query keine eindeutige Möglichkeit findet den ausgegebenen Datensatz zu löschen und deshalb gibt es die Meldung aus.
            die erste Spalte ist aber die primary Spalte "_id"
            er hat doch die ID 68 z.B.
            mehr braucht er doch nicht um den Beitrag zu löschen ;-)

            ja, aber vielleicht kommt es (=phpMyAdmin) ja bei deinen JOINs durcheinander?

            er kann ihn bearbeiten, aber nicht löschen *g*

            /das/ hat mich allerdings auch gewundert :-)

            Grüße aus Nürnberg
            Tobias

            1. Hallo Tobias!

              ja, aber vielleicht kommt es (=phpMyAdmin) ja bei deinen JOINs durcheinander?

              Es scheint auf alle Fälle irgendein Fehler in phpMyAdmin zu sein.
              Dort schaut einer der Entwickler jetzt mal, was da eventuell falsch läuft.

              MfG
              Götz

              --
              Losung für Donnerstag, 13. Januar 2005
              Bei dem Herrn findet man Hilfe. Dein Segen komme über dein Volk! (Psalm 3,9)
              Jesus sprach zu der Frau: Dein Glaube hat dir geholfen. Geh hin in Frieden! (Lukas 8,48)
              (Losungslink)