Duplicate entry '5' for key 1

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Duplicate entry '5' for key 1

    Hallo zusammen,

    ich habe ein Problem mit eintrag in meine DB.
    Seid c.a. 3 Wochen funzt alles einwandfrei und heute bekomme ich auf einmal eine fehlermeldung.

    Duplicate entry '5' for key 1

    Kennt zufällig jemand diese Meldung?
    Ich kann mir nur vorstellen das es mit einem Doppeleintrag zu tun hat.

    Hier ist mal die DB Strucktur:

    CREATE TABLE `lastpost` (
    `id` int(11) NOT NULL default '0',
    `num` int(11) NOT NULL default '0',
    `fdescription` varchar(120) NOT NULL default '',
    `author` varchar(37) NOT NULL default '',
    `datestamp` datetime NOT NULL default '0000-00-00 00:00:00',
    `subject` varchar(150) NOT NULL default '',
    `thread` int(11) NOT NULL default '0',
    `frestricted` enum('N','Y') NOT NULL default 'N',
    PRIMARY KEY (`id`)
    ) TYPE=MyISAM;

  • #2
    und wie sieht deine Query aus?

    Kommentar


    • #3
      $sSQL = "Insert Into lastpost (id,num,fdescription,author,datestamp,subject,thread,frestricted) values ($id,'$num','$fdescription','$author','$datestamp','$subject','$thread','$frestricted')";

      $q->query($DB, $sSQL) OR die(mysql_error());

      Kommentar


      • #4
        da dein primary key die Spalte id ist, mußt du dafür sorgen, dass keine existierende Wert eingefügt wird, sonst kracht's.

        Es wäre besser, wenn du id gleichzeitig als auto_increment derklarierst und das einfügen von neuen Wert MySQL somit überläßt.

        Kommentar


        • #5
          setz das id-feld doch so
          `id` int(11) NOT NULL AUTO_INCREMENT,

          da werden dann die werte automatisch eingetragen und du brauchst dich darum nicht mehr zu kümmern.

          gruss
          peter
          Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
          Meine Seite

          Kommentar


          • #6
            Original geschrieben von asp2php
            da dein primary key die Spalte id ist, mußt du dafür sorgen, dass keine existierende Wert eingefügt wird, sonst kracht's.

            Es wäre besser, wenn du id gleichzeitig als auto_increment derklarierst und das einfügen von neuen Wert MySQL somit überläßt.
            Ne auto_increment kann ich nicht machen da die id von einer anderen
            tabelle in diese übergeben wird. kann man den primary key nicht ganz raus schmeissen?

            Kommentar


            • #7
              da die id von einer anderen tabelle in diese übergeben wird
              ist die id aus der anderen tabelle denn auf auto_increment gesetzt?

              peter
              Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
              Meine Seite

              Kommentar


              • #8
                achso, es ist also ein foreign key .

                OK, erweitere deine Tabelle um eine Spalte:

                tid INT NOT NULL AUTO_INCREMENT

                und lege den primary key hierauf.

                Kommentar


                • #9
                  OK das leuchtet mir ein.

                  Oder kann ich den primary key nicht einfach auf den datestamp legen?
                  Der datestamp kommt doch immer nur einmal vor.

                  Kommentar


                  • #10
                    Wieso kommt der nur einmal vor? Kann man nicht gleichzeitig posten? :P

                    Das wäre glaub ich auch vom Prinzip her bisschen am Sinn vorbei...

                    Prinzipiell kannste einfach für jede Tabelle nen tabellenthema_id als primary key/autoincrement anlegen! So, dass jeder Eintrag eben genau zu identifizieren ist!

                    Kommentar


                    • #11
                      OT:

                      ....freut mich, dass ich mein PW ohne es zu merken, wiedergefunden habe

                      Kommentar

                      Lädt...
                      X