Witam,
używam MySQL Workbench do wygenerowania bazy danych. Niestety co rusz trafiam na jakieś problemy, kilka już rozwiązałem a dalej jakoś nie mogę sobie poradzić. Wklejam więc polecenie wygenerowane przez ww. program a następnie SysLog.
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';
ALTER TABLE `xxx`.`inwestycja` DROP FOREIGN KEY `fk_Inwestycja_Firmy` ;
ALTER TABLE `xxx`.`inwestycja` CHANGE COLUMN `Firmy_idFirmy` `Firmy_idFirmy` INT(11) NULL DEFAULT NULL ,
ADD CONSTRAINT `fk_Inwestycja_Firmy`
FOREIGN KEY (`Firmy_idFirmy` )
REFERENCES `xxx`.`firmy` (`idFirmy` )
ON DELETE NO ACTION
ON UPDATE NO ACTION
, DROP INDEX `fk_Inwestycja_Firmy`
, ADD INDEX `fk_Inwestycja_Firmy` (`Firmy_idFirmy` ASC) ;
CREATE TABLE IF NOT EXISTS `xxx`.`obszary` (
`idObszary` INT(11) NOT NULL AUTO_INCREMENT ,
`nazwa` VARCHAR(45) NOT NULL ,
`ptaki` TINYINT(1) NOT NULL ,
`nietoperze` TINYINT(1) NULL DEFAULT NULL ,
`Inwestycja_Nazwa` VARCHAR(45) NULL DEFAULT NULL ,
`Pracownicy_idPracownicy` INT(11) NULL DEFAULT NULL ,
`punkty_idpunkty` INT(11) NULL DEFAULT NULL ,
PRIMARY KEY (`idObszary`, `Inwestycja_Nazwa`) ,
INDEX `fk_Obszary_Inwestycja` (`Inwestycja_Nazwa` ASC) ,
INDEX `fk_Obszary_Pracownicy` (`Pracownicy_idPracownicy` ASC) ,
INDEX `fk_Obszary_punkty1` (`punkty_idpunkty` ASC) ,
CONSTRAINT `fk_Obszary_Inwestycja`
FOREIGN KEY (`Inwestycja_Nazwa` )
REFERENCES `xxx'.`inwestycja` (`Nazwa` )
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT `fk_Obszary_Pracownicy`
FOREIGN KEY (`Pracownicy_idPracownicy` )
REFERENCES `xxx`.`pracownicy` (`idPracownicy` )
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT `fk_Obszary_punkty1`
FOREIGN KEY (`punkty_idpunkty` )
REFERENCES `xxx`.`punkty` (`idpunkty` )
ON DELETE CASCADE
ON UPDATE CASCADE)
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8
COLLATE = utf8_unicode_ci;
CREATE TABLE IF NOT EXISTS `xxx`.`wyjscia` (
`idWyjścia` INT(11) NOT NULL AUTO_INCREMENT ,
`data` DATE NOT NULL ,
`ptaki` TINYINT(1) NOT NULL ,
`nietoperze` TINYINT(1) NOT NULL ,
`naleznosc` INT(11) NOT NULL ,
`komentarz` TEXT NULL DEFAULT NULL ,
`Obszary_idObszary` INT(11) NOT NULL DEFAULT NULL ,
`Pracownicy_idPracownicy` INT(11) NOT NULL DEFAULT NULL ,
`typWyjscia_idtypWyjscia` INT(11) NOT NULL ,
`godzinaStartu` TIME NULL DEFAULT NULL ,
`godzinaKonca` TIME NULL DEFAULT NULL ,
PRIMARY KEY (`idWyjścia`, `Obszary_idObszary`, `typWyjscia_idtypWyjscia`, `Pracownicy_idPracownicy`) ,
INDEX `fk_Wyjścia_Obszary` (`Obszary_idObszary` ASC) ,
INDEX `fk_Wyjścia_Pracownicy` (`Pracownicy_idPracownicy` ASC) ,
INDEX `fk_Wyjścia_typWyjscia1` (`typWyjscia_idtypWyjscia` ASC) ,
CONSTRAINT `fk_Wyjścia_Obszary`
FOREIGN KEY (`Obszary_idObszary` )
REFERENCES `xxx`.`obszary` (`idObszary` )
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT `fk_Wyjścia_Pracownicy`
FOREIGN KEY (`Pracownicy_idPracownicy` )
REFERENCES `xxx`.`pracownicy` (`idPracownicy` )
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT `fk_Wyjścia_typWyjscia1`
FOREIGN KEY (`typWyjscia_idtypWyjscia` )
REFERENCES `xxx`.`typWyjscia` (`idtypWyjscia` )
ON DELETE CASCADE
ON UPDATE CASCADE)
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8
COLLATE = utf8_unicode_ci;
CREATE TABLE IF NOT EXISTS `xxx`.`sprzet` (
`idSprzęt` INT(11) NOT NULL AUTO_INCREMENT ,
`typ` VARCHAR(45) NOT NULL ,
`numer` VARCHAR(45) NOT NULL ,
`Komentarz` TEXT NULL DEFAULT NULL ,
PRIMARY KEY (`idSprzęt`) )
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8
COLLATE = utf8_unicode_ci;
CREATE TABLE IF NOT EXISTS `xxx`.`zwierz` (
`idZwierz` INT(11) NOT NULL AUTO_INCREMENT ,
`gatunek` VARCHAR(45) NOT NULL ,
`wsp_x` FLOAT NOT NULL ,
`wsp_y` FLOAT NOT NULL ,
`Wyjścia_idWyjścia` INT(11) NOT NULL DEFAULT NULL ,
`liczba` INT(11) NULL DEFAULT NULL ,
`płeć` TINYINT(1) NULL DEFAULT NULL ,
`wiek` TINYINT(4) NULL DEFAULT NULL ,
`zachowanie` TEXT NULL DEFAULT NULL ,
`wysokosc` FLOAT NULL DEFAULT NULL ,
`kierunek` VARCHAR(2) NULL DEFAULT NULL ,
`grupa` VARCHAR(10) NULL DEFAULT NULL ,
`uwagi` TEXT NULL DEFAULT NULL ,
PRIMARY KEY (`idZwierz`, `Wyjścia_idWyjścia`) ,
INDEX `fk_Zwierz_Wyjścia` (`Wyjścia_idWyjścia` ASC) ,
CONSTRAINT `fk_Zwierz_Wyjścia`
FOREIGN KEY (`Wyjścia_idWyjścia` )
REFERENCES `xxx`.`wyjscia` (`idWyjścia` )
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8
COLLATE = utf8_unicode_ci;
CREATE TABLE IF NOT EXISTS `xxx`.`pogoda` (
`idPogoda` INT(11) NOT NULL AUTO_INCREMENT ,
`godzina` VARCHAR(45) NULL DEFAULT NULL ,
`zachmurzenie` VARCHAR(45) NULL DEFAULT NULL ,
`temperatura` VARCHAR(45) NULL DEFAULT NULL ,
`opad` VARCHAR(45) NULL DEFAULT NULL ,
`Wyjścia_idWyjścia` INT(11) NOT NULL DEFAULT NULL ,
PRIMARY KEY (`idPogoda`, `Wyjścia_idWyjścia`) ,
INDEX `fk_Pogoda_Wyjścia` (`Wyjścia_idWyjścia` ASC) ,
CONSTRAINT `fk_Pogoda_Wyjścia`
FOREIGN KEY (`Wyjścia_idWyjścia` )
REFERENCES `xxx`.`wyjscia` (`idWyjścia` )
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8
COLLATE = utf8_unicode_ci;
CREATE TABLE IF NOT EXISTS `xxx`.`czasPracy` (
`idCzasPracy` INT(11) NOT NULL AUTO_INCREMENT ,
`godzinaPrzyjscia` TIME NOT NULL ,
`godzinaWyjscia` TIME NOT NULL ,
`data` DATE NOT NULL ,
`pracownicy_idPracownicy` INT(11) NOT NULL DEFAULT NULL ,
`powodNieobecnosci_idpowodNieobecnosci` INT(11) NOT NULL ,
PRIMARY KEY (`idCzasPracy`, `pracownicy_idPracownicy`) ,
INDEX `fk_CzasPracy_Pracownicy` (`pracownicy_idPracownicy` ASC) ,
INDEX `fk_czasPracy_powodNieobecnosci1` (`powodNieobecnosci_idpowodNieobecnosci` ASC) ,
CONSTRAINT `fk_CzasPracy_Pracownicy`
FOREIGN KEY (`pracownicy_idPracownicy` )
REFERENCES `xxx`.`pracownicy` (`idPracownicy` )
ON DELETE NO ACTION
ON UPDATE CASCADE,
CONSTRAINT `fk_czasPracy_powodNieobecnosci1`
FOREIGN KEY (`powodNieobecnosci_idpowodNieobecnosci` )
REFERENCES `xxx`.`typNieobecnosci` (`idpowodNieobecnosci` )
ON DELETE CASCADE
ON UPDATE CASCADE)
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8
COLLATE = utf8_unicode_ci;
CREATE TABLE IF NOT EXISTS `xxx`.`sprzet_has_wyjscia` (
`Sprzęt_idSprzęt` INT(11) NOT NULL ,
`Wyjścia_idWyjścia` INT(11) NOT NULL ,
PRIMARY KEY (`Sprzęt_idSprzęt`, `Wyjścia_idWyjścia`) ,
INDEX `fk_Sprzęt_has_Wyjścia_Sprzęt` (`Sprzęt_idSprzęt` ASC) ,
INDEX `fk_Sprzęt_has_Wyjścia_Wyjścia` (`Wyjścia_idWyjścia` ASC) ,
CONSTRAINT `fk_Sprzęt_has_Wyjścia_Sprzęt`
FOREIGN KEY (`Sprzęt_idSprzęt` )
REFERENCES `xxx`.`sprzet` (`idSprzęt` )
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT `fk_Sprzęt_has_Wyjścia_Wyjścia`
FOREIGN KEY (`Wyjścia_idWyjścia` )
REFERENCES `xxx`.`wyjscia` (`idWyjścia` )
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8
COLLATE = utf8_unicode_ci;
CREATE TABLE IF NOT EXISTS `xxx`.`uslugi` (
`iduslugi` INT(11) NOT NULL AUTO_INCREMENT ,
`nazwa` VARCHAR(100) NOT NULL ,
`cena` FLOAT NOT NULL ,
`vat` INT(11) NOT NULL ,
PRIMARY KEY (`iduslugi`) )
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8
COLLATE = utf8_unicode_ci;
CREATE TABLE IF NOT EXISTS `xxx`.`faktury` (
`idfaktury` INT(11) NOT NULL AUTO_INCREMENT ,
`dataSprzedarzy` DATE NULL DEFAULT NULL ,
`dataWysstawienia` DATE NULL DEFAULT NULL ,
`sposobZaplaty` VARCHAR(45) NULL DEFAULT NULL ,
`nrFaktury` VARCHAR(45) NULL DEFAULT NULL ,
`stan` VARCHAR(45) NULL DEFAULT NULL ,
`odestki` VARCHAR(45) NULL DEFAULT NULL ,
`terminPlatnosci` DATE NULL DEFAULT NULL ,
`Firmy_idFirmy` INT(11) NOT NULL ,
PRIMARY KEY (`idfaktury`) ,
INDEX `fk_faktury_Firmy1` (`Firmy_idFirmy` ASC) ,
CONSTRAINT `fk_faktury_Firmy1`
FOREIGN KEY (`Firmy_idFirmy` )
REFERENCES `xxx`.`firmy` (`idFirmy` )
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8
COLLATE = utf8_unicode_ci;
CREATE TABLE IF NOT EXISTS `xxx`.`faktury_has_uslugi` (
`faktury_idfaktury` INT(11) NOT NULL ,
`uslugi_iduslugi` INT(11) NOT NULL ,
PRIMARY KEY (`faktury_idfaktury`, `uslugi_iduslugi`) ,
INDEX `fk_faktury_has_uslugi_uslugi1` (`uslugi_iduslugi` ASC) ,
CONSTRAINT `fk_faktury_has_uslugi_faktury1`
FOREIGN KEY (`faktury_idfaktury` )
REFERENCES `xxx`.`faktury` (`idfaktury` )
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT `fk_faktury_has_uslugi_uslugi1`
FOREIGN KEY (`uslugi_iduslugi` )
REFERENCES `xxx`.`uslugi` (`iduslugi` )
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8
COLLATE = utf8_unicode_ci;
CREATE TABLE IF NOT EXISTS `xxx`.`typNieobecnosci` (
`idpowodNieobecnosci` INT(11) NOT NULL AUTO_INCREMENT ,
`powod` VARCHAR(45) NULL DEFAULT NULL ,
PRIMARY KEY (`idpowodNieobecnosci`) )
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8
COLLATE = utf8_unicode_ci;
CREATE TABLE IF NOT EXISTS `xxx`.`typWyjscia` (
`idtypWyjscia` INT(11) NOT NULL AUTO_INCREMENT ,
`typ` VARCHAR(45) NOT NULL ,
PRIMARY KEY (`idtypWyjscia`) )
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8
COLLATE = utf8_unicode_ci;
CREATE TABLE IF NOT EXISTS `xxx`.`punkty` (
`idpunkty` INT(11) NOT NULL AUTO_INCREMENT ,
`typ` VARCHAR(45) NULL DEFAULT NULL ,
`wspX` FLOAT NULL DEFAULT NULL ,
`wspY` FLOAT NULL DEFAULT NULL ,
`typPunktu_idtypPunktu` INT(11) NOT NULL ,
PRIMARY KEY (`idpunkty`) ,
INDEX `fk_punkty_typPunktu1` (`typPunktu_idtypPunktu` ASC) ,
CONSTRAINT `fk_punkty_typPunktu1`
FOREIGN KEY (`typPunktu_idtypPunktu` )
REFERENCES `xxx`.`typPunktu` (`idtypPunktu` )
ON DELETE CASCADE
ON UPDATE CASCADE)
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8
COLLATE = utf8_unicode_ci;
CREATE TABLE IF NOT EXISTS `xxx`.`typPunktu` (
`idtypPunktu` INT(11) NOT NULL AUTO_INCREMENT ,
`typ` VARCHAR(45) NULL DEFAULT NULL ,
`opis` TEXT NULL DEFAULT NULL ,
PRIMARY KEY (`idtypPunktu`) )
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8
COLLATE = utf8_unicode_ci;
SET SQL_MODE=@OLD_SQL_MODE;
SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS;
SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS;
Starting thread...
Thread started
15009 INFO Connecting to SSH server at 192.168.0.150:22...
New client connection
client connection established
15009 INFO Tunnel now open ('127.0.0.1', 1421) -> ('192.168.0.150', 22) -> ('localhost', 3306)
Executing SQL script in server
ERROR: Error 1005: Can't create table './xxx/obszary.frm' (errno: 150)
CREATE TABLE IF NOT EXISTS `xxx`.`obszary` (
`idObszary` INT(11) NOT NULL AUTO_INCREMENT ,
`nazwa` VARCHAR(45) NOT NULL ,
`ptaki` TINYINT(1) NOT NULL ,
`nietoperze` TINYINT(1) NULL DEFAULT NULL ,
`Inwestycja_Nazwa` VARCHAR(45) NULL DEFAULT NULL ,
`Pracownicy_idPracownicy` INT(11) NULL DEFAULT NULL ,
`punkty_idpunkty` INT(11) NULL DEFAULT NULL ,
PRIMARY KEY (`idObszary`, `Inwestycja_Nazwa`) ,
INDEX `fk_Obszary_Inwestycja` (`Inwestycja_Nazwa` ASC) ,
INDEX `fk_Obszary_Pracownicy` (`Pracownicy_idPracownicy` ASC) ,
INDEX `fk_Obszary_punkty1` (`punkty_idpunkty` ASC) ,
CONSTRAINT `fk_Obszary_Inwestycja`
FOREIGN KEY (`Inwestycja_Nazwa` )
REFERENCES `xxx`.`inwestycja` (`Nazwa` )
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT `fk_Obszary_Pracownicy`
FOREIGN KEY (`Pracownicy_idPracownicy` )
REFERENCES `xxx`.`pracownicy` (`idPracownicy` )
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT `fk_Obszary_punkty1`
FOREIGN KEY (`punkty_idpunkty` )
REFERENCES `xxx`.`punkty` (`idpunkty` )
ON DELETE CASCADE
ON UPDATE CASCADE)
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8
COLLATE = utf8_unicode_ci
SQL script execution finished: statements: 5 succeeded, 1 failed
Sprawdziłem już i kolejność i referencje i dalej jakoś nie mogę znaleźć błędu.
Z błędu wynika, że nie może utworzyć referencji, wcześniej powodem był inny engine tabeli do ktorej się odnosiła ale teraz wszystkie są takie same.