【问题标题】:setting MySQL auto_increment to be dependent on two other primary keys将 MySQL auto_increment 设置为依赖于另外两个主键
【发布时间】:2012-04-13 08:48:54
【问题描述】:

我正在尝试建立一个 MySQL 数据库来存储生物数据。我必须从文件中提取这些数据,并且我有一个 perl 脚本。我遇到的问题是我需要三个主键才能使它们唯一,并且我希望其中一个是自动增量整数。但是,我希望在每次前两个键的组合发生变化时重置自动递增的值。

sequence1 | hit1      | 1
sequence1 | hit1      | 2
sequence1 | hit2      | 1
sequence2 | something | 1
sequence2 | something | 2
sequence2 | something | 3
sequence3 | something | 1

等等。等等

这可能吗,还是我必须直接在脚本中实现?

谢谢

【问题讨论】:

  • 当你重置AI主键列时,它对于现有值将不再是唯一的。你可以触发来管理其他列值,但不是AI。
  • 但是表的整体键是三个主键的组合。在此配置中保持唯一性。
  • mm 我不明白这是什么意思,对不起,我不是 SQL 专家 :(

标签: mysql primary-key auto-increment


【解决方案1】:

这仅适用于 MyISAM 表,不适用于 InnoDB 或 MySQL 具有的任何其他存储引擎。

只需在 (col1, col2, id) 上创建一个主键并在 id 列上设置 auto_increment 标志。并确保仅对 id 没有唯一约束。 MyISAM 将为每个唯一的 (col1, col2) 对生成一个新的值序列。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-09-04
    • 2012-07-03
    • 1970-01-01
    • 2020-08-25
    • 1970-01-01
    • 2012-03-29
    • 2011-06-15
    • 1970-01-01
    相关资源
    最近更新 更多