Я пытаюсь преобразовать мои инструкции MySQL create table в SQLite для создания операторов таблицы. Большинство из них я сделал, однако я не знаю, как изменить MySQL UNIQUE INDEX на Sqlites CREATE INDEX (я думал, что они были примерно одинаковыми, пожалуйста, исправьте меня, если я ошибаюсь).
Итак, у меня есть следующая таблица MySQL (она немного изменилась с:
-- -----------------------------------------------------
-- Table `pyMS`.`feature`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `pyMS`.`feature` (
`feature_id` VARCHAR(40) NOT NULL ,
`intensity` DOUBLE NOT NULL ,
`overallquality` DOUBLE NOT NULL ,
`quality` DOUBLE NOT NULL ,
`charge` INT NOT NULL ,
`content` VARCHAR(45) NOT NULL ,
`msrun_msrun_id` INT NOT NULL ,
PRIMARY KEY (`feature_id`, `msrun_msrun_id`) ,
UNIQUE INDEX `id_UNIQUE` (`feature_id` ASC) ,
INDEX `fk_feature_msrun1` (`msrun_msrun_id` ASC) ,
CONSTRAINT `fk_feature_msrun1`
FOREIGN KEY (`msrun_msrun_id` )
REFERENCES `pyMS`.`msrun` (`msrun_id` )
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB;
И я изменил индекс в соответствии с http://www.sqlite.org/lang_createindex.html. Я также изменил некоторые другие вещи, чтобы перейти от MySQL к SQLite, но я тестировал его, и они работают. Итак, это мой код SQLite:
-- -----------------------------------------------------
-- Table `feature`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `feature` (
`feature_id` VARCHAR(40) NOT NULL ,
`intensity` DOUBLE NOT NULL ,
`overallquality` DOUBLE NOT NULL ,
`quality` DOUBLE NOT NULL ,
`charge` INT NOT NULL ,
`content` VARCHAR(45) NOT NULL ,
`msrun_msrun_id` INT NOT NULL ,
CREATE UNIQUE INDEX `id_UNIQUE` ON `feature` (`feature_id` ASC) ,
CREATE INDEX `fk_feature_msrun1` ON `msrun` (`msrun_msrun_id` ASC) ,
CONSTRAINT `fk_feature_msrun1`
FOREIGN KEY (`msrun_msrun_id` )
REFERENCES `msrun` (`msrun_id` )
ON DELETE NO ACTION
ON UPDATE NO ACTION);
Это не работает. Когда я удаляю строки INDEX, он работает. Насколько я вижу, строки INDEX соответствуют этому описанию http://www.sqlite.org/lang_createindex.html, я не вижу, где это происходит. Итак, как я могу изменить две строки
CREATE UNIQUE INDEX `id_UNIQUE` ON `feature` (`feature_id` ASC) ,
CREATE INDEX `fk_feature_msrun1` ON `msrun` (`msrun_msrun_id` ASC) ,
чтобы правильно их синтаксис?