1
CREATE TABLE IF NOT EXISTS `graduation_project_management`.`announcement` ( `announcement_id` INT UNSIGNED NOT NULL AUTO_INCREMENT , `account_id` INT UNSIGNED NOT NULL , `title` TINYTEXT NOT NULL , `content` TEXT NULL , `time` TIMESTAMP NOT NULL , `state` INT ZEROFILL NOT NULL , `priority` INT ZEROFILL NOT NULL , PRIMARY KEY (`announcement_id`) , INDEX `fk_announcement_account` (`account_id` ASC) , UNIQUE INDEX `title_UNIQUE` (`title` ASC) , CONSTRAINT `fk_announcement_account` FOREIGN KEY (`account_id` ) REFERENCES `graduation_project_management`.`account` (`account_id` ) ON DELETE RESTRICT ON UPDATE RESTRICT)ENGINE = InnoDB;
执行后会发生下面这个错
Error 1170 : BLOB/TEXT Column 'title' Used in Key Specification Without a Key Length
网上说是删除索引或UNIQUE约束的TEXT或BLOB列,我把title的UNIQUE INDEX取消了仍就是这个错,能不能在不改变title类型的前提下解决这个错误。2
CREATE TABLE IF NOT EXISTS `graduation_project_management`.`project` ( `project_id` INT UNSIGNED NOT NULL AUTO_INCREMENT , `account_id` INT UNSIGNED NOT NULL , `title` TINYTEXT NOT NULL , `major` VARCHAR(30) NOT NULL , `content` TEXT NOT NULL , `type` VARCHAR(20) NOT NULL , `property` VARCHAR(20) NOT NULL , `source` VARCHAR(20) NOT NULL , `assignment_book_path` VARCHAR(100) NULL , `interview_info` TEXT NULL , `time` TIMESTAMP NOT NULL , `note` VARCHAR(45) NULL , PRIMARY KEY (`project_id`) , UNIQUE INDEX `title_UNIQUE` (`title` ASC) , CONSTRAINT `fk_project_teacher` FOREIGN KEY () REFERENCES `graduation_project_management`.`teacher` () ON DELETE NO ACTION ON UPDATE NO ACTION)ENGINE = InnoDB;ERROR 1064 check the manual that corresponds to your MySQL server version for the right syntax to use near
')
REFERENCES `graduation_project_management`.`teacher` ()
ON DELETE NO' at line17
请问这个是什么错误,如何解决
CREATE TABLE IF NOT EXISTS `graduation_project_management`.`announcement` ( `announcement_id` INT UNSIGNED NOT NULL AUTO_INCREMENT , `account_id` INT UNSIGNED NOT NULL , `title` TINYTEXT NOT NULL , `content` TEXT NULL , `time` TIMESTAMP NOT NULL , `state` INT ZEROFILL NOT NULL , `priority` INT ZEROFILL NOT NULL , PRIMARY KEY (`announcement_id`) , INDEX `fk_announcement_account` (`account_id` ASC) , UNIQUE INDEX `title_UNIQUE` (`title` ASC) , CONSTRAINT `fk_announcement_account` FOREIGN KEY (`account_id` ) REFERENCES `graduation_project_management`.`account` (`account_id` ) ON DELETE RESTRICT ON UPDATE RESTRICT)ENGINE = InnoDB;
执行后会发生下面这个错
Error 1170 : BLOB/TEXT Column 'title' Used in Key Specification Without a Key Length
网上说是删除索引或UNIQUE约束的TEXT或BLOB列,我把title的UNIQUE INDEX取消了仍就是这个错,能不能在不改变title类型的前提下解决这个错误。2
CREATE TABLE IF NOT EXISTS `graduation_project_management`.`project` ( `project_id` INT UNSIGNED NOT NULL AUTO_INCREMENT , `account_id` INT UNSIGNED NOT NULL , `title` TINYTEXT NOT NULL , `major` VARCHAR(30) NOT NULL , `content` TEXT NOT NULL , `type` VARCHAR(20) NOT NULL , `property` VARCHAR(20) NOT NULL , `source` VARCHAR(20) NOT NULL , `assignment_book_path` VARCHAR(100) NULL , `interview_info` TEXT NULL , `time` TIMESTAMP NOT NULL , `note` VARCHAR(45) NULL , PRIMARY KEY (`project_id`) , UNIQUE INDEX `title_UNIQUE` (`title` ASC) , CONSTRAINT `fk_project_teacher` FOREIGN KEY () REFERENCES `graduation_project_management`.`teacher` () ON DELETE NO ACTION ON UPDATE NO ACTION)ENGINE = InnoDB;ERROR 1064 check the manual that corresponds to your MySQL server version for the right syntax to use near
')
REFERENCES `graduation_project_management`.`teacher` ()
ON DELETE NO' at line17
请问这个是什么错误,如何解决
`announcement_id` INT UNSIGNED NOT NULL AUTO_INCREMENT ,
`account_id` INT UNSIGNED NOT NULL ,
`title` TINYTEXT NOT NULL ,
`content` TEXT NULL ,
`time` TIMESTAMP NOT NULL ,
`state` INT ZEROFILL NOT NULL ,
`priority` INT ZEROFILL NOT NULL ,
PRIMARY KEY (`announcement_id`) ,
INDEX `fk_announcement_account` (`account_id` ASC) ,
UNIQUE INDEX `title_UNIQUE` (`title`(20) ASC) ,
CONSTRAINT `fk_announcement_account`
FOREIGN KEY (`account_id` )
REFERENCES `graduation_project_management`.`account` (`account_id` )
ON DELETE RESTRICT
ON UPDATE RESTRICT)
由于TEXT字段长度很大,所以无法直接用于索引。必须限制其做为索引部分的长度。
REFERENCES `graduation_project_management`.`teacher` ()你连字段都没说明! 是哪个字段参照 `teacher`中的哪个字段?
text字段仅支持前缀索引
`title`(40)
2
语法问题,没有指定外键、及参照表名、字段