我想在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
这可能吗?
答案 0 :(得分:3)
你想要的是不可能的。您希望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`)
);