0

学校でプロジェクトがあり、Derby DB を使用する必要があります。Eclipse と SQL Scrapbook を使用して SQL スクリプトを実行しています。

問題は次のとおりです。私の SQL スクリプトは Mysql Workbench によって生成されました。スキーマを作成してから .sql にエクスポートしました。

SQL Scrapbook で実行しようとすると、多くのエラーが発生します。SQL が derby に適合していないようです (たとえば、AUTOINCREMENT は現在 (START WITH 1, INCREMENT BY 1) です)。

これが私の .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 `mydb` ;
CREATE SCHEMA IF NOT EXISTS `mydb` DEFAULT CHARACTER SET latin1 COLLATE latin1_swedish_ci ;
USE `mydb` ;

-- -----------------------------------------------------
-- Table `mydb`.`User`
-- -----------------------------------------------------
DROP TABLE IF EXISTS `mydb`.`User` ;

CREATE  TABLE IF NOT EXISTS `mydb`.`User` (
  `id` INT NOT NULL AUTO_INCREMENT ,
  `name` VARCHAR(45) NOT NULL ,
  `lastname` VARCHAR(45) NOT NULL ,
  `email` VARCHAR(45) NOT NULL ,
  `adress` VARCHAR(45) NOT NULL ,
  `city` VARCHAR(45) NOT NULL ,
  `zip` VARCHAR(45) NOT NULL ,
  `login` VARCHAR(45) NOT NULL ,
  `password` VARCHAR(45) NOT NULL ,
  `admin` TINYINT(1) NOT NULL ,
  PRIMARY KEY (`id`) )
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8
COLLATE = utf8_general_ci;


-- -----------------------------------------------------
-- Table `mydb`.`Movie`
-- -----------------------------------------------------
DROP TABLE IF EXISTS `mydb`.`Movie` ;

CREATE  TABLE IF NOT EXISTS `mydb`.`Movie` (
  `id` INT NOT NULL AUTO_INCREMENT ,
  `title` VARCHAR(45) NOT NULL ,
  `resume` VARCHAR(500) NULL ,
  `genre` VARCHAR(60) NULL ,
  `grade` INT(11) NULL ,
  `review_pub` VARCHAR(200) NULL ,
  `review_gen` VARCHAR(200) NULL ,
  `poster` VARCHAR(100) NULL ,
  `duration` INT(11) NULL ,
  `release_date` VARCHAR(45) NULL ,
  PRIMARY KEY (`id`) )
ENGINE = InnoDB;


-- -----------------------------------------------------
-- Table `mydb`.`Projection`
-- -----------------------------------------------------
DROP TABLE IF EXISTS `mydb`.`Projection` ;

CREATE  TABLE IF NOT EXISTS `mydb`.`Projection` (
  `id` INT NOT NULL AUTO_INCREMENT COMMENT '            ' ,
  `date` DATE NULL ,
  `length` INT(11) NULL ,
  `Movie_id` INT NOT NULL ,
  `price` DECIMAL(10,0) NULL ,
  `location` VARCHAR(45) NOT NULL ,
  `place_nbr` INT(11) NOT NULL ,
  PRIMARY KEY (`id`) ,
  INDEX `fk_Projection_Movie` (`Movie_id` ASC) ,
  CONSTRAINT `fk_Projection_Movie`
    FOREIGN KEY (`Movie_id` )
    REFERENCES `mydb`.`Movie` (`id` )
    ON DELETE NO ACTION
    ON UPDATE NO ACTION)
ENGINE = InnoDB;


-- -----------------------------------------------------
-- Table `mydb`.`command`
-- -----------------------------------------------------
DROP TABLE IF EXISTS `mydb`.`command` ;

CREATE  TABLE IF NOT EXISTS `mydb`.`command` (
  `id` INT NOT NULL AUTO_INCREMENT ,
  `Projection_id` INT NOT NULL ,
  `User_id` INT NOT NULL ,
  `paid` TINYINT(1) NOT NULL ,
  PRIMARY KEY (`id`) ,
  INDEX `fk_command_Projection1` (`Projection_id` ASC) ,
  INDEX `fk_command_User1` (`User_id` ASC) ,
  CONSTRAINT `fk_command_Projection1`
    FOREIGN KEY (`Projection_id` )
    REFERENCES `mydb`.`Projection` (`id` )
    ON DELETE NO ACTION
    ON UPDATE NO ACTION,
  CONSTRAINT `fk_command_User1`
    FOREIGN KEY (`User_id` )
    REFERENCES `mydb`.`User` (`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;

ありがとうございました

4

1 に答える 1