约束和索引中的命名约定

时间:2013-08-18 18:18:09

标签: mysql sql

索引和约束都可以具有相同的名称以及建议的命名约定

CREATE  TABLE IF NOT EXISTS `mydb`.`books` (
 `id` INT NOT NULL AUTO_INCREMENT ,
  `isbn` VARCHAR(45) NOT NULL ,
  `category_id` INT NOT NULL ,
  `publisher_id` INT NOT NULL ,
  `year` YEAR NULL ,
  PRIMARY KEY (`id`) ,
  INDEX `fk_books_category_id` (`category_id` ASC) ,
  INDEX `fk_books_publisher_id` (`publisher_id` ASC) ,
  CONSTRAINT `fk_books_category_id`
    FOREIGN KEY (`category_id` )
    REFERENCES `mydb`.`categories` (`id` )
    ON DELETE NO ACTION
    ON UPDATE NO ACTION,
  CONSTRAINT `fk_books_publisher_id`
    FOREIGN KEY (`publisher_id` )
    REFERENCES `mydb`.`publishers` (`id` )
    ON DELETE NO ACTION
    ON UPDATE NO ACTION)
ENGINE = InnoDB;

1 个答案:

答案 0 :(得分:0)

没有这样的标准。虽然,在MYSQL中,不需要为外键约束赋予符号名称。如果没有给出名称,InnoDB会自动创建一个唯一的名称。

虽然许多程序员喜欢使用idx_作为索引的前缀,而使用fk_作为外键。