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
请问这个是什么错误,如何解决

解决方案 »

  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`(20) ASC) ,
     CONSTRAINT `fk_announcement_account`
       FOREIGN KEY (`account_id` )
       REFERENCES `graduation_project_management`.`account` (`account_id` )
       ON DELETE RESTRICT
       ON UPDATE RESTRICT)
    由于TEXT字段长度很大,所以无法直接用于索引。必须限制其做为索引部分的长度。
      

  2.   

       FOREIGN KEY ()
       REFERENCES `graduation_project_management`.`teacher` ()你连字段都没说明! 是哪个字段参照 `teacher`中的哪个字段?
      

  3.   

    类似这些语法问题,可以直接参考一下官方手册中的说明和例子。MySQL官方文档 http://dev.mysql.com/doc/refman/5.1/zh/index.html
      

  4.   

    1
    text字段仅支持前缀索引
    `title`(40)
    2
    语法问题,没有指定外键、及参照表名、字段