error 1005 can't create table error(150)

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

  • error 1005 can't create table error(150)

    Hallo,

    habe gerade ein porblem wo ich nicht so durchblicke. Ich habe ueber ein Tool
    DBDesigner http://www.fabforce.net/dbdesigner4/index.php ein
    Datenbankdesign erstellt (testweise) und danach mir eine SQL datei
    ertsellen lassen. Leider gibt es bei den letzten zu erzeugenden Tabelle
    schwierigkeiten. Ich erhalte immer die medlung
    ! 1005Can't creata table './db/table.frm' (error 150)
    Hier das SQL
    Code:
    CREATE TABLE elm_values (
      element_id INTEGER NOT NULL,
      design_id INTEGER NOT NULL,
      design_element_id INTEGER NOT NULL,
      password_id INTEGER NOT NULL,
      cat_id INTEGER NOT NULL,
      user_id INTEGER NOT NULL,
      icon_id INTEGER NOT NULL,
      elm_value TEXT NOT NULL,
      PRIMARY KEY(element_id, design_id, design_element_id, password_id, cat_id, user_id, icon_id),
      INDEX values_FKIndex1(password_id, design_id, icon_id, user_id, cat_id),
      INDEX values_FKIndex2(design_element_id, design_id, element_id, user_id),
      FOREIGN KEY(password_id, design_id, icon_id, user_id, cat_id)
        REFERENCES passwords(id, design_id, icon_id, user_id, cat_id)
          ON DELETE CASCADE
          ON UPDATE CASCADE,
      FOREIGN KEY(design_element_id, design_id, element_id, user_id)
        REFERENCES design_elements(id, design_id, element_id, user_id)
          ON DELETE CASCADE
          ON UPDATE CASCADE
    )
    TYPE=InnoDB;
    Im MySQL Query Browser werden die Elemente:
    • elm_values
    • design_element_id
    • password_id
    • elm_value
    farblich nicht hervorgehoben. Das nur so mal am Rande.

    Hat einer eine Lösung/Idee aus welchen Grund diese Fehlermeldung
    erscheint und wie man es eventuell Lösen könnte.

    cheers
    Nichts auf der Welt ist so gerecht verteilt wie der Verstand. Denn jedermann ist davon überzeugt, dass er genug davon habe – René Descartes
    PHP Sicherheit
    PHPUnit[1-2]
    Professionelle Softwareentwicklung mit PHP 5
    Professionelle PHP 5-Programmierung

  • #2
    Re: error 1005 can't create table error(150)

    Original geschrieben von schlimmerfinger
    Hat einer eine Lösung/Idee aus welchen Grund diese Fehlermeldung
    erscheint und wie man es eventuell Lösen könnte.
    http://dev.mysql.com/doc/mysql/en/in...ror-codes.html tut kund:
    #

    1005 (ER_CANT_CREATE_TABLE)

    Cannot create table. If the error message string refers to errno 150, table creation failed because a foreign key constraint was not correctly formed.
    Ich denke, also bin ich. - Einige sind trotzdem...

    Kommentar


    • #3
      Danke für Deine Antwort, nur ich komme nicht drauf welche bedingung für genau welches FK nicht korreckt ist.

      cheers
      Nichts auf der Welt ist so gerecht verteilt wie der Verstand. Denn jedermann ist davon überzeugt, dass er genug davon habe – René Descartes
      PHP Sicherheit
      PHPUnit[1-2]
      Professionelle Softwareentwicklung mit PHP 5
      Professionelle PHP 5-Programmierung

      Kommentar


      • #4
        nimm doch einfach einen der beiden raus - so bekommst du raus, welcher falsch ist...

        Kommentar


        • #5
          Leider genau das selbe Ich verstehe das nicht

          momentaner SQL:
          Code:
          CREATE TABLE tester (
            element_id INTEGER NOT NULL,
            design_id INTEGER NOT NULL,
            cat_id INTEGER NOT NULL,
            user_id INTEGER NOT NULL,
            icon_id INTEGER NOT NULL,
            PRIMARY KEY(element_id, design_id, cat_id, user_id, icon_id),
            INDEX elm_values_FKIndex1(design_id, icon_id, user_id, cat_id),
            INDEX elm_values_FKIndex2(design_id, element_id, user_id),
            FOREIGN KEY(design_id, icon_id, user_id, cat_id)
              REFERENCES passwords(id, design_id, icon_id, user_id, cat_id)
                ON DELETE CASCADE
                ON UPDATE CASCADE,
            FOREIGN KEY(design_id, element_id, user_id)
              REFERENCES design_elements(id, design_id, element_id, user_id)
                ON DELETE CASCADE
                ON UPDATE CASCADE
          )
          TYPE=InnoDB;
          Nichts auf der Welt ist so gerecht verteilt wie der Verstand. Denn jedermann ist davon überzeugt, dass er genug davon habe – René Descartes
          PHP Sicherheit
          PHPUnit[1-2]
          Professionelle Softwareentwicklung mit PHP 5
          Professionelle PHP 5-Programmierung

          Kommentar


          • #6
            Und welchen der beiden hast du da jetzt rausgenommen?
            Ich denke, also bin ich. - Einige sind trotzdem...

            Kommentar


            • #7
              Original geschrieben von mrhappiness
              Und welchen der beiden hast du da jetzt rausgenommen?
              • elm_values (tabellennamen in tester geändert)
              • design_element_id (rausgenommen)
              • password_id (rausgenommen)
              • elm_value (rausgenommen)
              Nichts auf der Welt ist so gerecht verteilt wie der Verstand. Denn jedermann ist davon überzeugt, dass er genug davon habe – René Descartes
              PHP Sicherheit
              PHPUnit[1-2]
              Professionelle Softwareentwicklung mit PHP 5
              Professionelle PHP 5-Programmierung

              Kommentar


              • #8
                den ganzen foreignkey rausnehmen

                Kommentar


                • #9
                  Original geschrieben von LJedi
                  den ganzen foreignkey rausnehmen
                  Es liegt im folgenden FK:
                  Code:
                  FOREIGN KEY(design_element_id, design_id, element_id, user_id)
                      REFERENCES design_elements(id, design_id, element_id, user_id)
                        ON DELETE CASCADE
                        ON UPDATE CASCADE
                  Ein Fehler erkenne ich immer noch nicht?
                  Nichts auf der Welt ist so gerecht verteilt wie der Verstand. Denn jedermann ist davon überzeugt, dass er genug davon habe – René Descartes
                  PHP Sicherheit
                  PHPUnit[1-2]
                  Professionelle Softwareentwicklung mit PHP 5
                  Professionelle PHP 5-Programmierung

                  Kommentar


                  • #10
                    PHP-Code:
                    FOREIGN KEY(design_idicon_iduser_idcat_id)
                        
                    REFERENCES passwords(iddesign_idicon_iduser_idcat_id)
                          
                    ON DELETE CASCADE
                          ON UPDATE CASCADE

                    ich hätte gesagt, dass da 4 ids mit 5 ids verknüpft werden sollen

                    Kommentar


                    • #11
                      Original geschrieben von LJedi
                      PHP-Code:
                      FOREIGN KEY(design_idicon_iduser_idcat_id)
                          
                      REFERENCES passwords(iddesign_idicon_iduser_idcat_id)
                            
                      ON DELETE CASCADE
                            ON UPDATE CASCADE

                      ich hätte gesagt, dass da 4 ids mit 5 ids verknüpft werden sollen
                      Sry ich weiß jetzt nich wie das zustannde gekommen ist,
                      aber der FK den ich gepostet habe ist falsch.

                      FK:
                      Code:
                      FOREIGN KEY(design_element_id, design_id, element_id, user_id)
                          REFERENCES design_elements(id, design_id, element_id, user_id)
                            ON DELETE CASCADE
                            ON UPDATE CASCADE
                      Ich habe wirklich keinen blassen schimmer was nicht daran stimmen sollte...

                      cheers
                      Nichts auf der Welt ist so gerecht verteilt wie der Verstand. Denn jedermann ist davon überzeugt, dass er genug davon habe – René Descartes
                      PHP Sicherheit
                      PHPUnit[1-2]
                      Professionelle Softwareentwicklung mit PHP 5
                      Professionelle PHP 5-Programmierung

                      Kommentar


                      • #12
                        wie sieht denn design_elements aus (Struktur)?

                        Kommentar


                        • #13
                          folgendermahßen:
                          Code:
                          CREATE TABLE design_elements (
                            id INTEGER NOT NULL AUTO_INCREMENT,
                            design_id INTEGER NOT NULL,
                            element_id INTEGER NOT NULL,
                            user_id INTEGER NOT NULL,
                            elm_name VARCHAR(20) NOT NULL,
                            elm_maxlenght CHAR(3) NULL,
                            elm_cols TINYINT NULL,
                            elm_rows TINYINT NULL,
                            PRIMARY KEY(id, design_id, element_id, user_id),
                            INDEX design_elements_FKIndex1(design_id, user_id),
                            INDEX design_elements_FKIndex2(element_id),
                            FOREIGN KEY(design_id, user_id)
                              REFERENCES design(id, user_id)
                                ON DELETE CASCADE
                                ON UPDATE CASCADE,
                            FOREIGN KEY(element_id)
                              REFERENCES elements(id)
                                ON DELETE CASCADE
                                ON UPDATE CASCADE
                          );
                          Nichts auf der Welt ist so gerecht verteilt wie der Verstand. Denn jedermann ist davon überzeugt, dass er genug davon habe – René Descartes
                          PHP Sicherheit
                          PHPUnit[1-2]
                          Professionelle Softwareentwicklung mit PHP 5
                          Professionelle PHP 5-Programmierung

                          Kommentar


                          • #14
                            OffTopic:
                            ich guck später mal genauer - jetzt hab ich feierabend und fahr nach Hause

                            Kommentar


                            • #15
                              Original geschrieben von LJedi
                              OffTopic:
                              ich guck später mal genauer - jetzt hab ich feierabend und fahr nach Hause
                              np. Dank dir trotzdem.
                              Nichts auf der Welt ist so gerecht verteilt wie der Verstand. Denn jedermann ist davon überzeugt, dass er genug davon habe – René Descartes
                              PHP Sicherheit
                              PHPUnit[1-2]
                              Professionelle Softwareentwicklung mit PHP 5
                              Professionelle PHP 5-Programmierung

                              Kommentar

                              Lädt...
                              X