【问题标题】:MySQL Composite Primary Key AutoIncrement [duplicate]MySQL复合主键自动增量[重复]
【发布时间】:2017-11-21 17:46:31
【问题描述】:

我正在尝试设计一个如下所示的数据库:

CREATE TABLE `Item` (
   `SKU` int(11) NOT NULL,
   `ItemName` varchar(45) DEFAULT NULL
   PRIMARY KEY (`SKU`)
 )

CREATE TABLE `ItemVariant` (
   `SKU` int(11) NOT NULL,
   `ItemAttributeID` int(11) NOT NULL AUTO_INCREMENT,
   `Color` varchar(45) DEFAULT NULL,
   PRIMARY KEY (`SKU`,`ItemAttributeID`),
   CONSTRAINT `ItemAttributeMaster_SKU` FOREIGN KEY (`SKU`) REFERENCES `ItemMaster` (`SKU`) ON DELETE CASCADE ON UPDATE CASCADE
 )

我希望自动增量像这样工作 - 对于每个 SKU,ItemAttributeID 将从 1 开始自动增量。所以我可以有

SKU|ItemAttributeID|Color
1  |1              |Red
1  |2              |Blue
1  |3              |Green
2  |1              |Purple
2  |2              |Orange
2  |3              |Red
2  |4              |Blue
3  |1              |Green

但使用自动增量并不能实现这一点。我怎样才能达到这个结果?

【问题讨论】:

    标签: mysql sql auto-increment composite-primary-key


    【解决方案1】:

    您要么必须手动执行,要么可以使用触发器...或者在 MyISAM 引擎中,如果您将其用于表,它会按照您的意愿工作,但该引擎不强制执行外键。

    【讨论】:

      猜你喜欢
      • 2018-11-30
      • 1970-01-01
      • 2019-07-15
      • 1970-01-01
      • 2016-11-11
      • 1970-01-01
      • 2012-04-16
      • 1970-01-01
      相关资源
      最近更新 更多