Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql fk引用上的数据类型未知_Mysql_Sql_H2 - Fatal编程技术网

Mysql fk引用上的数据类型未知

Mysql fk引用上的数据类型未知,mysql,sql,h2,Mysql,Sql,H2,我试图在我的H2数据库中运行这个mysql命令。数据库设置为mysql模式 -- ----------------------------------------------------- -- Table `users` -- ----------------------------------------------------- CREATE TABLE IF NOT EXISTS `users` ( `id` INT NOT NULL, `username` VARCHAR(45

我试图在我的H2数据库中运行这个mysql命令。数据库设置为mysql模式

-- -----------------------------------------------------
-- Table `users`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `users` (
  `id` INT NOT NULL,
  `username` VARCHAR(45) NOT NULL COMMENT '     ',
  `email` VARCHAR(320) NOT NULL,
  PRIMARY KEY (`id`))
ENGINE = InnoDB;


-- -----------------------------------------------------
-- Table `serverprojects`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `serverprojects` (
  `id` INT NOT NULL,
  `name` VARCHAR(100) NOT NULL,
  `status` TINYINT(1) NULL,
  `restorescript_relative_path` VARCHAR(255) NULL,
  `backupscript_relative_path` VARCHAR(255) NULL,
  `installscript_relative_path` VARCHAR(255) NULL,
  `username` VARCHAR(100) NULL,
  `password` VARCHAR(100) NULL,
  `gradle_relative_path` VARCHAR(255) NULL,
  `root_path` VARCHAR(1000) NOT NULL,
  PRIMARY KEY (`id`))
ENGINE = InnoDB;


-- -----------------------------------------------------
-- Table `projects`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `projects` (
  `id` INT NOT NULL,
  `name` VARCHAR(100) NOT NULL,
  `serverprojects_id` INT NOT NULL,
  `users_id` INT NOT NULL,
  PRIMARY KEY (`id`),
  INDEX `fk_projects_serverprojects_idx` (`serverprojects_id` ASC),
  INDEX `fk_projects_users1_idx` (`users_id` ASC),
  CONSTRAINT `fk_projects_serverprojects`
    FOREIGN KEY (`serverprojects_id`)
    REFERENCES `serverprojects` (`id`)
    ON DELETE NO ACTION
    ON UPDATE NO ACTION,
  CONSTRAINT `fk_projects_users1`
    FOREIGN KEY (`users_id`)
    REFERENCES `users` (`id`)
    ON DELETE NO ACTION
    ON UPDATE NO ACTION)
ENGINE = InnoDB;


SET FOREIGN_KEY_CHECKS=1;
这产生了以下错误输出

Unbekannter Datentyp: "FK_PROJECTS_SERVERPROJECTS_IDX"
Unknown data type: "FK_PROJECTS_SERVERPROJECTS_IDX"; SQL statement:
-- ----------------------------------------------------- 
-- Table `projects` 
-- ----------------------------------------------------- 
CREATE TABLE IF NOT EXISTS `projects` ( 
  `id` INT NOT NULL, 
  `name` VARCHAR(100) NOT NULL, 
  `serverprojects_id` INT NOT NULL, 
  `users_id` INT NOT NULL, 
  PRIMARY KEY (`id`), 
  INDEX `fk_projects_serverprojects_idx` (`serverprojects_id` ASC), 
  INDEX `fk_projects_users1_idx` (`users_id` ASC), 
  CONSTRAINT `fk_projects_serverprojects` 
    FOREIGN KEY (`serverprojects_id`) 
    REFERENCES `serverprojects` (`id`) 
    ON DELETE NO ACTION 
    ON UPDATE NO ACTION, 
  CONSTRAINT `fk_projects_users1` 
    FOREIGN KEY (`users_id`) 
    REFERENCES `users` (`id`) 
    ON DELETE NO ACTION 
    ON UPDATE NO ACTION) 
ENGINE = InnoDB [50004-193] HY004/50004 (Help)

有人知道这里发生了什么吗?我认为问题出在INDEX
fk\u projects\u serverprojects\u idx
serverprojects\u id
ASC)的语法中,但我无法实现这一点,我刚刚发现问题在于:

INDEX `fk_projects_serverprojects_idx` (`serverprojects_id` ASC), 
  INDEX `fk_projects_users1_idx` (`users_id` ASC), 

与InnoDB结合使用。使用InnoCb,您不允许这样做。

我不使用MySQL,但我发现任何RDBMS都会允许您在字段创建之前对其进行索引,这让我感到惊讶。