【问题标题】:How to generate foreign key names random which are not exist in database?如何随机生成数据库中不存在的外键名称?
【发布时间】:2014-06-23 10:04:12
【问题描述】:

假设我正在编写这样的查询。

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;

我的问题是“是否可以生成一些随机字符串名称作为外键名称?”我想要这样的东西,因为即使在我删除了那个键名之后,这个查询也会给我重复的键名错误。

【问题讨论】:

    标签: mysql random generic-foreign-key


    【解决方案1】:

    索引名称是可选的,所以你不需要指定它。在这种情况下,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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-07-11
      • 2017-12-20
      • 1970-01-01
      • 2011-08-13
      • 1970-01-01
      • 1970-01-01
      • 2013-01-19
      • 1970-01-01
      相关资源
      最近更新 更多