Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> MySql Workbench, klucz obcy, (errno: 150)
wNogachSpisz
post
Post #1





Grupa: Zarejestrowani
Postów: 1 233
Pomógł: 87
Dołączył: 6.03.2009

Ostrzeżenie: (40%)
XX---


Próbuje stworzyć projekt bazy danych przy pomocy mysql workbench.
Diagram wygląda tak:

(IMG:http://img201.imageshack.us/img201/7753/visual.png)

Program generuje następujący kod SQL tworzący bazę danych:
Kod
SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0;
SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0;
SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='TRADITIONAL';

CREATE SCHEMA IF NOT EXISTS `address_db` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
USE `address_db`;

-- -----------------------------------------------------
-- Table `address_db`.`city`
-- -----------------------------------------------------
CREATE  TABLE IF NOT EXISTS `address_db`.`city` (
  `id` INT NOT NULL ,
  `name` VARCHAR(45) NULL ,
  PRIMARY KEY (`id`) )
ENGINE = InnoDB;


-- -----------------------------------------------------
-- Table `address_db`.`address`
-- -----------------------------------------------------
CREATE  TABLE IF NOT EXISTS `address_db`.`address` (
  `id` INT NOT NULL ,
  `city` VARCHAR(45) NULL ,
  INDEX `fk_address_city` (`city` ASC) ,
  PRIMARY KEY (`id`) ,
  CONSTRAINT `fk_address_city`
    FOREIGN KEY (`city` )
    REFERENCES `address_db`.`city` (`id` )
    ON DELETE NO ACTION
    ON UPDATE NO ACTION)
ENGINE = InnoDB;



SET SQL_MODE=@OLD_SQL_MODE;
SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS;
SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS;


Natomiast phpMyAdmin przy próbie uruchomienia tego kodu zwraca błąd:
Kod
Error

SQL query:

-- -----------------------------------------------------
-- Table `address_db`.`address`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `address_db`.`address` (
`id` INT NOT NULL ,
`city` VARCHAR( 45 ) NULL ,
INDEX `fk_address_city` ( `city` ASC ) ,
PRIMARY KEY ( `id` ) ,
CONSTRAINT `fk_address_city` FOREIGN KEY ( `city` ) REFERENCES `address_db`.`city` (
`id`
) ON DELETE NO ACTION ON UPDATE NO ACTION
) ENGINE = InnoDB;

MySQL said:  
#1005 - Can't create table 'address_db.address' (errno: 150)




Czy ktoś mógłby mi wyjaśnić w czym leży problem i jak go naprawić?
Z góry dziękuję za pomoc.

Uwaga!
Jeśli nie jesteś w stanie znaleźć i wskazać błędu w powyższym zapytaniu SQL,
to uprzejmie proszę, nie wypowiadaj się.



Ten post edytował wNogachSpisz 5.02.2012, 18:16:26
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 4.10.2025 - 14:53