我想在 MySQL 中创建一个像这样的表结构:
id | area | name
----+----------+------------
1 | name-1 | test
| |
1 | name-1 | value2
| |
2 | name-2 | test-value
| |
3 | name-3 | test
| |
3 | name-3 | test
即。主键将是: primary_key( id, area )
并且 id 将是 auto_increment
,但我只希望 id 为每个新的唯一区域递增
这可能吗?
最佳答案
你想要的东西是不可能的。您希望 id
和 area
成为主键,但在您的示例中它们不是唯一的。
如果您定义表键,它必须是唯一的,在您的示例中,这意味着您需要在主键中包含name
。但为什么不只将 id
作为主键并自动递增呢?这是常见用法。
编辑:
例如,您可以创建一个名为 area_id
的额外字段。您可以向字段添加自动增量功能,如下所示:
CREATE TABLE `areas`
(
`id` INT NOT NULL ,
`area_id` INT NOT NULL AUTO_INCREMENT ,
`area` VARCHAR(100) NULL ,
`name` VARCHAR(100) NULL ,
PRIMARY KEY (`id`)
);
关于mysql不唯一自增,主键两个字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8694064/