如何使用多主键表中的第一个数字自动递增字段

时间:2019-05-22 14:54:28

标签: sql primary-key auto-increment

我需要增加数据库中的辅助字段,但是当最左边的主键更改时,我需要该字段重新从1开始。

我使用了autoIncrement,但是当鼠标左键更改时,数字一直在增加

示例:

    Table
    key1, key 2 
    1     1
    1     2
    1     3
    1     4
    2     1
    2     2
    1     5
    2     3
    2     4

我只想知道在创建字段时是否有直接在SQL中执行此操作的方法,或者我是否每次都需要运行上一个查询只是为了知道max(key 2)是什么。...

感谢您的帮助

1 个答案:

答案 0 :(得分:0)

您应将表定义为:

create table examples (
    example_id int auto_increment primary key,  -- or identity, or generated always as, or serial depending on your database
    key1 int
);

然后,您可以创建执行所需操作的视图:

create view v_example as
   select e.*, row_number() over (partition by key1 order by example_id) as key2
   from examples e;

也就是说,即时进行计算。在对表进行插入,更新和删除操作时,保持第二个键值非常麻烦。