2013-10-10 41 views
0

我在学校有一个项目,我必须使用Derby DB。 我使用eclipse和SQL Scrapbook来执行我的SQL脚本。来自Workbench的Derby和SQL

这里的问题是: 是由MySQL工作台生成My SQL脚本,我们做了一个模式,然后将其导出到.SQL

当我尝试在SQL剪贴簿来执行它,我有很多的错误中,SQL似乎不适合于德比(例如AUTOINCREMENT现在(从1开始,递增1)

这是我的.sql:

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 `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 [email protected]_SQL_MODE; 
SET [email protected]_FOREIGN_KEY_CHECKS; 
SET [email protected]_UNIQUE_CHECKS; 

谢谢

回答

0

尝试使用DdlUtils(http://db.apache.org/ddlutils/)从您的MySQL数据库导出您的模式,然后您可以将相同的模式导入到Derby。