我正在与我的项目工作几天,我坚持使用phpmyadmin sql。 我在工作台中创建ERR Diagram,它看起来像:
要粘贴到sql查询的代码是:
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';
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 SQL_MODE=@OLD_SQL_MODE;
SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS;
SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS;
Adres表示地址
Ogloszenie意为广告人
Wojewodztwa的意思是省
材料是指材料
Szczegoly意为细节
这个简单的项目是关于出售房屋的广告。 我的错误是
Executing SQL script in server
ERROR: Error 1005: Can't create table 'nieruchomosci.adres' (errno: 150)
我在sql中总是黄色,我在哪里弄错了?
答案 0 :(得分:1)
我认为您在错误的位置引用了外键。
而不是在adres
CONSTRAINT `fk_adres_ogloszenie1`
FOREIGN KEY (`id_adres` )
REFERENCES `nieruchomosci`.`ogloszenie` (`id_adres` )
ON DELETE NO ACTION
ON UPDATE NO ACTION)
您应该将其放在ogloszenie
表的定义中。
希望有所帮助。