索引和约束都可以具有相同的名称以及建议的命名约定
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;
答案 0 :(得分:0)
没有这样的标准。虽然,在MYSQL中,不需要为外键约束赋予符号名称。如果没有给出名称,InnoDB会自动创建一个唯一的名称。
虽然许多程序员喜欢使用idx_
作为索引的前缀,而使用fk_
作为外键。