Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MyISAM/InnoDB] Nie mogę utworzyć tabeli z kluczem zew. na silniku InnoDB
Forum PHP.pl > Forum > Bazy danych > MySQL
starach
Hej mam następującą tabelę

Jeden klucz zew. jest dodany do tabeli w której przechowywani są użyszkodnicy, natomiast _country_id leci do tabeli która przechowuje nazwy państw. Czyli niezbyt to skomplikowane.

Niestety kiedy prubuję utworzyć tą tabelę przy ustawionym silniku składowania na InnoDB wywala mi ona błąd 1005: Nie można utworzyć tabeli ( 105) znalazłem co nieco o nim tutaj niestety nie ma tam opisanego mojego przypadku.

Znalazłem rozwiązanie typu plaster na (_|_), które polega na zmianie typu na MyISAM, dodaniu tabeli, a następnie manualnej zmianie na InnoDB. Chciałbym jednak wiedzieć co powoduje ten błąd żebym nie musiał go obchodzić w przyszłości.

Dzięki

Edit>
Kod
CREATE  TABLE IF NOT EXISTS `state` (
  `id` INT UNSIGNED NOT NULL AUTO_INCREMENT ,
  `name` VARCHAR(125) NOT NULL ,
  `_country_id` INT NOT NULL ,
  PRIMARY KEY (`id`) ,
  UNIQUE INDEX `code_UNIQUE` (`id` ASC) ,
  INDEX `fk_state_country` (`_country_id` ASC) ,
  CONSTRAINT `fk_state_country`
    FOREIGN KEY (`_country_id` )
    REFERENCES `country` (`id` )
    ON DELETE NO ACTION
    ON UPDATE NO ACTION)
ENGINE = InnoDB
Smertius
Pokaż kod CREATE TABLE drugiej tabeli. Prawdopodobnie pola które tworzą klucz mają różną definicje np. w jeden z tabel zamiast INT, jest UNSIGNED INT i to już nie zadziała i wywali błąd 1005
starach
Faktycznie. Musiałem po zrobieniu relacji w edytorze graficznym przez przypadek odznaczyć UNSIGNE INT. Dzięki już działa.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.