假设我正在编写这样的查询。
SET foreign_key_checks = 0;
ALTER TABLE `StudentSubjectMarkMap`
ADD CONSTRAINT `here_I_want_some_random_name`
FOREIGN KEY (`id` )
REFERENCES `Subject` (`subjectId` )
ON DELETE NO ACTION
ON UPDATE NO ACTION
, ADD INDEX `here_I_want_some_random_name` (`id` ASC);
SET foreign_key_checks = 1;
我的问题是"是否可以生成一些随机字符串名称作为外键名称?"我想要这样的事情,因为即使我删除了该键名,这个查询也给了我重复的键名错误。
答案 0 :(得分:2)
索引名称是可选的,因此您无需指定它。在这种情况下,MySQL将为索引指定一个名称,并且它不会失败。有关详细信息,请参阅ALTER TABLE语法:
ALTER [ONLINE | OFFLINE] [IGNORE] TABLE tbl_name
[alter_specification [, alter_specification] ...]
[partition_options]
ADD {INDEX|KEY} [index_name]
[index_type] (index_col_name,...) [index_option] ...
ADD [CONSTRAINT [symbol]]
FOREIGN KEY [index_name] (index_col_name,...)
reference_definition