mysql非唯一自动递增,主键两个字段

mysql非唯一自动递增,主键两个字段,mysql,primary-key,unique,auto-increment,Mysql,Primary Key,Unique,Auto Increment,我想在MySQL中创建如下表结构: id | area | name ----+----------+------------ 1 | name-1 | test | | 1 | name-1 | value2 | | 2 | name-2 | test-value | | 3 | name-3 | test | | 3 | name-

我想在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
也就是说,主键将是:
主键(id,区域)
,id将是
自动增量
,但我只希望id为每个新的唯一区域递增


这可能吗?

你想要的是不可能的。您希望
id
area
作为主键,但在您的示例中,它们不是唯一的

如果定义表键,它必须是唯一的,在您的示例中,这意味着您需要在主键中包含
name
。但是为什么不把
id
作为主键并自动递增呢?这是常见的用法

编辑:

例如,您可以创建一个名为
area\u 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`) 
);

谢谢,我只能这么做了。我正在考虑另一个解决方案,因为每个区域都必须有自己的id。我想我只需要添加另一个列-区域id。是否可以自动增加新的列区域id,以便每个区域都有一个类似于上面示例中id字段的id?是的,这是可能的。自动递增字段不必是主键。另一种可能是将面积数据存储在一个表中,然后创建另一个引用面积表的表,以确保第一个表中的每个面积只有一个条目。然后您的
id
字段将是唯一的。不幸的是,第二个选项对于我正在设计的系统是不可能的,因为我不知道什么数据将存储在区域表中(它是一个插件架构,因此将由插件本身决定)。那么,我如何才能让自动增量像上面的例子那样工作(即绑定到面积字段)?