![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 1 233 Pomógł: 87 Dołączył: 6.03.2009 Ostrzeżenie: (40%) ![]() ![]() |
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 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 59 Pomógł: 0 Dołączył: 13.11.2011 Ostrzeżenie: (0%) ![]() ![]() |
PHPMyAdmin (errno: 150):
Can't create table. Chodzi o foreign key - najpierw stwórz tabele, do której się odwołujesz. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 4.10.2025 - 09:59 |