2012-01-20 3 views
2

저는 며칠 동안 프로젝트를 진행 중이며 phpmyadmin sql을 고수했습니다. 내가 보이는 워크 벤치 ERR 다이어그램에서 만든 : SQL 쿼리에 붙여 enter image description here제약 조건으로 테이블을 만들 수 없습니다.

그리고 코드 것은 :

SET @[email protected]@UNIQUE_CHECKS, UNIQUE_CHECKS=0; 
SET @[email protected]@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0; 
SET @[email protected]@SQL_MODE, SQL_MODE='TRADITIONAL'; 

DROP SCHEMA IF EXISTS `nieruchomosci` ; 
CREATE SCHEMA IF NOT EXISTS `nieruchomosci` DEFAULT CHARACTER SET utf8 ; 
USE `nieruchomosci` ; 

-- ----------------------------------------------------- 
-- Table `nieruchomosci`.`wojewodztwa` 
-- ----------------------------------------------------- 
DROP TABLE IF EXISTS `nieruchomosci`.`wojewodztwa` ; 

CREATE TABLE IF NOT EXISTS `nieruchomosci`.`wojewodztwa` (
    `id_wojewodztwa` INT NULL AUTO_INCREMENT , 
    `nazwa` VARCHAR(145) NULL , 
    PRIMARY KEY (`id_wojewodztwa`)) 
ENGINE = InnoDB; 


-- ----------------------------------------------------- 
-- Table `nieruchomosci`.`material` 
-- ----------------------------------------------------- 
DROP TABLE IF EXISTS `nieruchomosci`.`material` ; 

CREATE TABLE IF NOT EXISTS `nieruchomosci`.`material` (
    `id_material` INT NULL AUTO_INCREMENT , 
    `typ` VARCHAR(45) NULL , 
    PRIMARY KEY (`id_material`)) 
ENGINE = InnoDB; 


-- ----------------------------------------------------- 
-- Table `nieruchomosci`.`szczegoly` 
-- ----------------------------------------------------- 
DROP TABLE IF EXISTS `nieruchomosci`.`szczegoly` ; 

CREATE TABLE IF NOT EXISTS `nieruchomosci`.`szczegoly` (
    `id_szczegoly` INT NULL , 
    `typ_nabytku` VARCHAR(45) NULL , 
    `nr_budynku` INT NULL , 
    `nr_lokalu` INT NULL , 
    `pokoje` INT NULL , 
    `powierzchnia_mieszkania` INT NULL , 
    `powierzchnia_domu` INT NULL , 
    `stan_b` INT NULL , 
    `stan_l` INT NULL , 
    `winda` VARCHAR(45) NULL , 
    `garaz` VARCHAR(45) NULL , 
    `osiedle` VARCHAR(45) NULL , 
    `telefon` VARCHAR(45) NULL , 
    `internet` VARCHAR(45) NULL , 
    `tv` VARCHAR(45) NULL , 
    `domofon` VARCHAR(45) NULL , 
    `tereny` VARCHAR(45) NULL , 
    `plac_zabaw` VARCHAR(45) NULL , 
    `sport` VARCHAR(45) NULL , 
    `kino` VARCHAR(45) NULL , 
    `basen` VARCHAR(45) NULL , 
    PRIMARY KEY (`id_szczegoly`)) 
ENGINE = InnoDB; 


-- ----------------------------------------------------- 
-- Table `nieruchomosci`.`ogloszenie` 
-- ----------------------------------------------------- 
DROP TABLE IF EXISTS `nieruchomosci`.`ogloszenie` ; 

CREATE TABLE IF NOT EXISTS `nieruchomosci`.`ogloszenie` (
    `id_ogloszenie` INT NULL AUTO_INCREMENT , 
    `rok` INT NULL , 
    `pietro` INT NULL , 
    `ile_pieter` INT NULL , 
    `cena` INT NULL , 
    `typ_oferty` INT NULL , 
    `id_adres` INT NULL , 
    `id_material` INT NULL , 
    PRIMARY KEY (`id_ogloszenie`) , 
    INDEX `fk_ogloszenie_material1` (`id_material` ASC) , 
    CONSTRAINT `fk_ogloszenie_material1` 
    FOREIGN KEY (`id_material`) 
    REFERENCES `nieruchomosci`.`material` (`id_material`) 
    ON DELETE NO ACTION 
    ON UPDATE NO ACTION, 
    CONSTRAINT `fk_ogloszenie_szczegoly1` 
    FOREIGN KEY (`id_ogloszenie`) 
    REFERENCES `nieruchomosci`.`szczegoly` (`id_szczegoly`) 
    ON DELETE NO ACTION 
    ON UPDATE NO ACTION) 
ENGINE = InnoDB; 


-- ----------------------------------------------------- 
-- Table `nieruchomosci`.`adres` 
-- ----------------------------------------------------- 
DROP TABLE IF EXISTS `nieruchomosci`.`adres` ; 

CREATE TABLE IF NOT EXISTS `nieruchomosci`.`adres` (
    `id_adres` INT NULL AUTO_INCREMENT , 
    `ulica` VARCHAR(45) NULL , 
    `miasto` VARCHAR(45) NULL , 
    `powiat` VARCHAR(45) NULL , 
    `id_wojewodztwa` INT NULL , 
    PRIMARY KEY (`id_adres`) , 
    INDEX `fk_adres_wojewodztwa` (`id_wojewodztwa` ASC) , 
    CONSTRAINT `fk_adres_wojewodztwa` 
    FOREIGN KEY (`id_wojewodztwa`) 
    REFERENCES `nieruchomosci`.`wojewodztwa` (`id_wojewodztwa`) 
    ON DELETE NO ACTION 
    ON UPDATE NO ACTION, 
    CONSTRAINT `fk_adres_ogloszenie1` 
    FOREIGN KEY (`id_adres`) 
    REFERENCES `nieruchomosci`.`ogloszenie` (`id_adres`) 
    ON DELETE NO ACTION 
    ON UPDATE NO ACTION) 
ENGINE = InnoDB; 



SET [email protected]_SQL_MODE; 
SET [email protected]_FOREIGN_KEY_CHECKS; 
SET [email protected]_UNIQUE_CHECKS; 

ADRES이 주소
이 Ogloszenie가
가 Wojewodztwa이 지방
재료를 의미 Advertistment을 의미 의미 재료를 의미 함
Szczegoly는 세부 내용을 의미합니다.

이 간단한 프로젝트는 집을 파는 광고에 관한 것입니다. 내 오류가 어디 실수를 않았다 내가 SQL 노란색 총입니다

Executing SQL script in server 

ERROR: Error 1005: Can't create table 'nieruchomosci.adres' (errno: 150) 

입니까?

답변

1

잘못된 위치에서 외래 키를 참조한다고 생각합니다. adres

CONSTRAINT `fk_adres_ogloszenie1` 
FOREIGN KEY (`id_adres`) 
REFERENCES `nieruchomosci`.`ogloszenie` (`id_adres`) 
ON DELETE NO ACTION 
ON UPDATE NO ACTION) 

의 정의에 다음을 갖는 당신은 ogloszenie 테이블의 정의에 넣고해야한다 대신에.

희망이 있습니다.

+0

맞아요! 감사! – deadfish

관련 문제