MySQL Auto Increment Probleme

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

  • MySQL Auto Increment Probleme

    Hallo zusammen,

    ich hab ein riesiges Problem und weiss nicht wie ich es lösen soll. Mein MySQL wird von einem Hoster gehostet (Version MySQL: 3.23.58
    PHP: 4.3.4 auf Linux/Apache).
    Ich habe eine Datenbank eingerichtet und unter anderem eine Tabelle die ein Feld beihnhaltet der ein Integer, Unique und Auto Increment eingeschaltet ist. Nun habe ich Daten importiert und dieses Feld ist die Benutzer ID (die Unique sein sollte). Der letzte User benutzt die ID 53. Wenn ich nun ein neuer User anlegen möchte (mit INSERT INTO) wird in diesem Feld eine irrige Zahl von 2174647 eingetragen. Das würde noch gehen wenn sie Unique wäre. Beim nächsten einfügen eines Users kommt eine Fehlermeldung da MySQL die genau gleiche ID vergeben wird.

    Wenn ich die Daten nicht importiere, dann funktioniert das Increment anstandslos!

    Weiss jemand von Euch was da verkehrt ist?
    Gruss

    Lecra

  • #2
    tja. wie wäre es, wenn du uns zeigst, wie du einen neuen user anlegst.
    INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


    Kommentar


    • #3
      Hi Abraxax,

      ups! Sorry!

      INSERT INTO users ('name', 'username', ....) VALUES ('Mueller', 'muellerK', ...)

      Felder sind:

      user_id: int 11 auto increment, unique
      name: varchar
      username: varchar
      Gruss

      Lecra

      Kommentar


      • #4
        dein id-feld ist doch bestimmt auch dein PK. da bracuhst du das unique auch nicht. das ist im PK sozusagen enthalten..

        was mich nur wundert ist, dass ein neuer user bei id 2174647 eingetragen wird.

        wie sieht denn die create anweisung deiner tabelle aus?
        INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


        Kommentar


        • #5
          Hi Abraxax,

          Du hast recht! user_id ist PK und somit Unique

          Anbei die Routine die die Tabelle erstellt:

          CREATE TABLE nuke_users (
          user_id int(11) NOT NULL auto_increment,
          name varchar(60) NOT NULL default '',
          username varchar(25) NOT NULL default '',
          user_email varchar(255) NOT NULL default '',
          femail varchar(255) NOT NULL default '',
          user_website varchar(255) NOT NULL default '',
          user_avatar varchar(255) NOT NULL default '',
          user_regdate varchar(20) NOT NULL default '',
          user_icq varchar(15) default NULL,
          user_occ varchar(100) default NULL,
          user_from varchar(100) default NULL,
          user_interests varchar(150) NOT NULL default '',
          user_sig varchar(255) default NULL,
          user_viewemail tinyint(2) default NULL,
          user_theme int(3) default NULL,
          user_aim varchar(18) default NULL,
          user_yim varchar(25) default NULL,
          user_msnm varchar(25) default NULL,
          user_password varchar(40) NOT NULL default '',
          storynum tinyint(4) NOT NULL default '10',
          umode varchar(10) NOT NULL default '',
          uorder tinyint(1) NOT NULL default '0',
          thold tinyint(1) NOT NULL default '0',
          noscore tinyint(1) NOT NULL default '0',
          bio tinytext NOT NULL,
          ublockon tinyint(1) NOT NULL default '0',
          ublock tinytext NOT NULL,
          theme varchar(255) NOT NULL default '',
          commentmax int(11) NOT NULL default '4096',
          counter int(11) NOT NULL default '0',
          newsletter int(1) NOT NULL default '0',
          user_posts int(10) NOT NULL default '0',
          user_attachsig int(2) NOT NULL default '0',
          user_rank int(10) NOT NULL default '0',
          user_level int(10) NOT NULL default '1',
          broadcast tinyint(1) NOT NULL default '1',
          popmeson tinyint(1) NOT NULL default '0',
          user_active tinyint(1) default '1',
          user_session_time int(11) NOT NULL default '0',
          user_session_page smallint(5) NOT NULL default '0',
          user_lastvisit int(11) NOT NULL default '0',
          user_timezone tinyint(4) NOT NULL default '10',
          user_style tinyint(4) default NULL,
          user_lang varchar(255) NOT NULL default 'english',
          user_dateformat varchar(14) NOT NULL default 'D M d, Y g:i a',
          user_new_privmsg smallint(5) unsigned NOT NULL default '0',
          user_unread_privmsg smallint(5) unsigned NOT NULL default '0',
          user_last_privmsg int(11) NOT NULL default '0',
          user_emailtime int(11) default NULL,
          user_allowhtml tinyint(1) default '1',
          user_allowbbcode tinyint(1) default '1',
          user_allowsmile tinyint(1) default '1',
          user_allowavatar tinyint(1) NOT NULL default '1',
          user_allow_pm tinyint(1) NOT NULL default '1',
          user_allow_viewonline tinyint(1) NOT NULL default '1',
          user_notify tinyint(1) NOT NULL default '0',
          user_notify_pm tinyint(1) NOT NULL default '0',
          user_popup_pm tinyint(1) NOT NULL default '0',
          user_avatar_type tinyint(4) NOT NULL default '3',
          user_sig_bbcode_uid varchar(10) default NULL,
          user_actkey varchar(32) default NULL,
          user_newpasswd varchar(32) default NULL,
          PRIMARY KEY (user_id),
          KEY uid (user_id),
          KEY uname (username),
          KEY user_session_time (user_session_time)
          ) TYPE=MyISAM;

          #
          # Dumping data for table 'nuke_users'
          #


          INSERT INTO nuke_users VALUES (1,'','Anonymous','','','','blank.gif','Nov 10, 2000','','','','','',0,0,'','','','',10,'',0,0,0,'',0,'','',4096,0,0,0,0,0,1,0,0,1,0,0,0,10,NULL,'en glish','D M d, Y g:i a',0,0,0,NULL,1,1,1,1,1,1,1,1,0,3,NULL,NULL,NULL);
          Gruss

          Lecra

          Kommentar


          • #6
            ich weiss nicht, was du machst, aber ich habe jetzt mal deine tabelle genommen, diese bei mir angelegt, anschliessend deinen INSERT genommen. alles hat bis hier funktioniert.

            dann habe ich eine dummy-query zum anlegen eines neuen users genommen.

            Code:
            INSERT nuke_users SET name = 'test', username = 'neueruser';
            alles ok. (id = 2)

            dann habe ich noch einen user angelegt.
            Code:
            INSERT nuke_users SET name = 'test 2', username = 'neueruser 2'
            auch ok. (id = 3)
            INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


            Kommentar


            • #7
              Hi Abraxax,

              das ist ja das Problem, und ich habe es im ersten Post geschrieben: wenn ich grüne Wiese habe funktioniert alles prächtig, wenn ich aber meine Daten importiere und MySQL sagt nach dem Import es sei alles Paletti, beim nächsten Record anlegen bekomme ich wieder die verflixte lange Zahl. Will ich nochmals eins anlegen, vergibt MYSQL wieder die genau gleiche user_id.

              Das ist das was ich nicht verstehe!!!
              Gruss

              Lecra

              Kommentar


              • #8
                dann zeig doch was das, was du importieren willst....
                INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                Kommentar


                • #9
                  Hi Abraxax,

                  werde es heute Abend posten. Kann im Moment vom Office aus nicht auf die Datenbank zugreifen.

                  Danke auf jeden Fall für Deine Hilfe!
                  Gruss

                  Lecra

                  Kommentar


                  • #10
                    Original geschrieben von lecra
                    [...] nicht auf die Datenbank zugreifen.
                    sollst du ja auch nicht. ich will nur die datei haben, die in die db soll.
                    INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                    Kommentar


                    • #11
                      Hi Abraxax,

                      habe Dir ein E-Mail geschickt wo Du die Daten einsehen kannst. Möchte meine User Datenbank nicht unbedingt hier reinposten :-)
                      Gruss

                      Lecra

                      Kommentar


                      • #12
                        schon ok. für solche fälle habe ich den email-button ja auch aktiviert...

                        so. ich habe deine daten in die tabelle eingefügt und wieder meine beiden testqueries zum anlegen neuer user ausgeführt.

                        die ids sind 57 + 58. es ist also alles normal.

                        so wie ich das sehen, kommst deine ominöse id aus deinem script.

                        teste mal alle nur mit PMA. ich denke, dass du dann auch ein positives ergebnis erhälst.
                        INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                        Kommentar


                        • #13
                          Hi Abraxax,

                          Ich könnte mich alle Hare rausreissen! Bei mir geht das nicht!!!!

                          Ich habe Heute versucht ohne Script einen User zu adden und? [COLOR=red]N I X !!![/COLOR]

                          Weisst nicht was Du mit PMA meinst, aber ich habe diesen Versuch mit myPHPAdmin gemacht und via SQL Query gemacht!!

                          Wenn ich die Tabelle lösche und dann nur die Struktur importiere und via SQL Query ein paar User adde, dann geht es

                          Möchte aber nicht unbedingt, dass sich alle User neu anmelden müssen wenn es nicht unbedingt sein muss!!

                          Aber aus blossem Auge sehe ich nicht was an den Daten falsch sein soll. Sie wurden nur aus einer andere Datenbank rüber migriert und sonst nichts!
                          Gruss

                          Lecra

                          Kommentar


                          • #14
                            PMA == phpMyAdmin

                            ich habe es auch damit gemacht. bei mir klappt es....

                            hast du woanders noch ne DB, womit du das mal testen kannst? kann ja sein, dass deine DB-dateien eine macke haben.

                            myisamchk könnte u.u. auch helfen.
                            INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                            Kommentar


                            • #15
                              Hi Abraxax,

                              zuerst möchte ich mich bedanken für Dein Effort, dass Du für meinen Fall reingesteckt hast! Herzlichen Dank, es ist nicht selbstverständlich.....

                              Ich kann mal versuchen die ganze Datenbank zu löschen und nochmals erstellen, die Tabellen neu zu erstellen und ein Import zu fahren.

                              Ich habe auch die Checks, Reparatur und sonstige Tools die mir MyPHPAdmin oder MySQL Front zur Verfügung gestellt ausprobiert aber kein Glück gehabt. Ich versuche Heute Abend eine neue Datenbank zu erstellen und werde danach berichten.

                              Gruss
                              Gruss

                              Lecra

                              Kommentar

                              Lädt...
                              X