索引和约束是否可以同名,推荐的命名约定是什么
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;
最佳答案
没有这样的标准。虽然,在MYSQL中不需要给外键约束一个符号名。如果没有给出名称,InnoDB 会自动创建一个唯一的名称。
尽管许多程序员更喜欢使用idx_
作为索引前缀,使用fk_
作为外键。
关于mysql - 约束和索引中的命名约定,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18302278/