mysql不唯一自增,主键两个字段

标签 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-3  | test

即。主键将是: primary_key( id, area ) 并且 id 将是 auto_increment,但我只希望 id 为每个新的唯一区域递增

这可能吗?

最佳答案

你想要的东西是不可能的。您希望 idarea 成为主键,但在您的示例中它们不是唯一的。

如果您定义表键,它必须是唯一的,在您的示例中,这意味着您需要在主键中包含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/

相关文章:

jquery - 当我使用 order by desc 和 join 查询时,为什么它非常慢?

php - php 的 mysql_real_escape_string() 的等效 javascript 代码是什么?

oracle - 如何在PL/SQL中合并两个类似的数据库架构?

mysql - SQL引用同一张表两次

javascript - jQuery 'unique' 在 Safari 中不返回实际的唯一值

javascript - 从 AngularJS 中的对象访问所有嵌套值的最快方法

mysql - 如何将一个数据库模式映射到另一个数据库模式?

Navicat 中的 MySQL View - 如何定义 'primary key'?

python - 随机选择一个列表中不在第二个列表中的元素

mysql - bash 使用 while read 在单个变量中连接字符串