我需要增加数据库中的辅助字段,但是当最左边的主键更改时,我需要该字段重新从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)是什么。...
感谢您的帮助
答案 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;
也就是说,即时进行计算。在对表进行插入,更新和删除操作时,保持第二个键值非常麻烦。