Beste lezer,
Dit schooljaar ben ik gestart met een blok over databases. Tot nu toe leuke stof, maar helaas ging het op software gebied al mis in de 2e les. In deze les kreeg het overgrote deel van de klas te maken met meerdere 1064 errors nadat we een datamodel uit een powerpoint hebben nagemaakt en deze probeerden te forward engineeren tot een database.
Aangezien ik niet bekend ben met MySQL heb ik geen idee of dit een bug is, of dat iedereen gewoon dezelfde fout maakt.
Wel heb ik de errors kunnen laten verdwijnen door zowel de foreign key (en index) generatie uit te zetten, en het vinkje van 'unique index' bij alle private keys weg te halen. Helaas is de database dan niet meer bruikbaar.
Kan iemand mij helpen met de correcte manier om dit probleem op te lossen? Ik heb al enkele uren het internet afgestruind maar het wil niet lukken.
Hier een foto van het EER Diagram:

Hieronder het eerste deel van de code die gegenereerd is door MySQL:
-- MySQL Workbench Forward Engineering
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='ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION';
-- -----------------------------------------------------
-- Schema nickel
-- -----------------------------------------------------
-- -----------------------------------------------------
-- Schema nickel
-- -----------------------------------------------------
CREATE SCHEMA IF NOT EXISTS `nickel` DEFAULT CHARACTER SET utf8 ;
USE `nickel` ;
-- -----------------------------------------------------
-- Table `nickel`.`Product`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `nickel`.`Product` (
`idProduct` INT NOT NULL AUTO_INCREMENT,
`Naam` VARCHAR(45) NOT NULL,
`Merk` VARCHAR(45) NOT NULL,
`Prijs` DOUBLE NULL,
`Categorie` VARCHAR(45) NULL,
PRIMARY KEY (`idProduct`),
UNIQUE INDEX `idProduct_UNIQUE` (`idProduct` ASC) VISIBLE)
ENGINE = InnoDB;
-- -----------------------------------------------------
-- Table `nickel`.`Bedrijf`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `nickel`.`Bedrijf` (
`idBedrijf` INT NOT NULL AUTO_INCREMENT,
`Naam` VARCHAR(45) NOT NULL,
`Datum oprichting` DATE NULL,
`Sector` VARCHAR(45) NULL,
`Hoofdkantoor` VARCHAR(45) NULL,
`Winst` DOUBLE NULL,
`Product_idProduct` INT NOT NULL,
PRIMARY KEY (`idBedrijf`),
UNIQUE INDEX `idBedrijf_UNIQUE` (`idBedrijf` ASC) VISIBLE,
INDEX `fk_Bedrijf_Product1_idx` (`Product_idProduct` ASC) VISIBLE,
CONSTRAINT `fk_Bedrijf_Product1`
FOREIGN KEY (`Product_idProduct`)
REFERENCES `nickel`.`Product` (`idProduct`)
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB;
Hieronder de eerste error melding:
Executing SQL script in server
ERROR: Error 1064: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'VISIBLE)
ENGINE = InnoDB' at line 11
SQL Code:
-- -----------------------------------------------------
-- Table `nickel`.`Product`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `nickel`.`Product` (
`idProduct` INT NOT NULL AUTO_INCREMENT,
`Naam` VARCHAR(45) NOT NULL,
`Merk` VARCHAR(45) NOT NULL,
`Prijs` DOUBLE NULL,
`Categorie` VARCHAR(45) NULL,
PRIMARY KEY (`idProduct`),
UNIQUE INDEX `idProduct_UNIQUE` (`idProduct` ASC) VISIBLE)
ENGINE = InnoDB
SQL script execution finished: statements: 5 succeeded, 1 failed
Fetching back view definitions in final form.
Nothing to fetch
Dit schooljaar ben ik gestart met een blok over databases. Tot nu toe leuke stof, maar helaas ging het op software gebied al mis in de 2e les. In deze les kreeg het overgrote deel van de klas te maken met meerdere 1064 errors nadat we een datamodel uit een powerpoint hebben nagemaakt en deze probeerden te forward engineeren tot een database.
Aangezien ik niet bekend ben met MySQL heb ik geen idee of dit een bug is, of dat iedereen gewoon dezelfde fout maakt.
Wel heb ik de errors kunnen laten verdwijnen door zowel de foreign key (en index) generatie uit te zetten, en het vinkje van 'unique index' bij alle private keys weg te halen. Helaas is de database dan niet meer bruikbaar.
Kan iemand mij helpen met de correcte manier om dit probleem op te lossen? Ik heb al enkele uren het internet afgestruind maar het wil niet lukken.
Hier een foto van het EER Diagram:
Hieronder het eerste deel van de code die gegenereerd is door MySQL:
-- MySQL Workbench Forward Engineering
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='ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION';
-- -----------------------------------------------------
-- Schema nickel
-- -----------------------------------------------------
-- -----------------------------------------------------
-- Schema nickel
-- -----------------------------------------------------
CREATE SCHEMA IF NOT EXISTS `nickel` DEFAULT CHARACTER SET utf8 ;
USE `nickel` ;
-- -----------------------------------------------------
-- Table `nickel`.`Product`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `nickel`.`Product` (
`idProduct` INT NOT NULL AUTO_INCREMENT,
`Naam` VARCHAR(45) NOT NULL,
`Merk` VARCHAR(45) NOT NULL,
`Prijs` DOUBLE NULL,
`Categorie` VARCHAR(45) NULL,
PRIMARY KEY (`idProduct`),
UNIQUE INDEX `idProduct_UNIQUE` (`idProduct` ASC) VISIBLE)
ENGINE = InnoDB;
-- -----------------------------------------------------
-- Table `nickel`.`Bedrijf`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `nickel`.`Bedrijf` (
`idBedrijf` INT NOT NULL AUTO_INCREMENT,
`Naam` VARCHAR(45) NOT NULL,
`Datum oprichting` DATE NULL,
`Sector` VARCHAR(45) NULL,
`Hoofdkantoor` VARCHAR(45) NULL,
`Winst` DOUBLE NULL,
`Product_idProduct` INT NOT NULL,
PRIMARY KEY (`idBedrijf`),
UNIQUE INDEX `idBedrijf_UNIQUE` (`idBedrijf` ASC) VISIBLE,
INDEX `fk_Bedrijf_Product1_idx` (`Product_idProduct` ASC) VISIBLE,
CONSTRAINT `fk_Bedrijf_Product1`
FOREIGN KEY (`Product_idProduct`)
REFERENCES `nickel`.`Product` (`idProduct`)
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB;
Hieronder de eerste error melding:
Executing SQL script in server
ERROR: Error 1064: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'VISIBLE)
ENGINE = InnoDB' at line 11
SQL Code:
-- -----------------------------------------------------
-- Table `nickel`.`Product`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `nickel`.`Product` (
`idProduct` INT NOT NULL AUTO_INCREMENT,
`Naam` VARCHAR(45) NOT NULL,
`Merk` VARCHAR(45) NOT NULL,
`Prijs` DOUBLE NULL,
`Categorie` VARCHAR(45) NULL,
PRIMARY KEY (`idProduct`),
UNIQUE INDEX `idProduct_UNIQUE` (`idProduct` ASC) VISIBLE)
ENGINE = InnoDB
SQL script execution finished: statements: 5 succeeded, 1 failed
Fetching back view definitions in final form.
Nothing to fetch
[ Voor 40% gewijzigd door N-ickel op 12-09-2018 19:34 ]