我有这张桌子equip_info:
equip_id | fam_id | asset_no
----------|--------|-----------
1 | 1 | 1
2 | 1 | 2
Run Code Online (Sandbox Code Playgroud)
我想equip_id从不同的地方插入一个新的fam_id并获得asset_no增量。
如果我这样做:
INSERT INTO equip_info (fam_id, asset_no)
VALUES (1, (SELECT MAX(asset_no) + 1 FROM equip_info WHERE fam_id = 1))
Run Code Online (Sandbox Code Playgroud)
我得到以下结果:
equip_id | fam_id | asset_no
----------|--------|-----------
1 | 1 | 1
2 | 1 | 2
3 | 1 | 3
Run Code Online (Sandbox Code Playgroud)
但是,如果我这样做:
INSERT INTO equip_info (fam_id, asset_no)
VALUES (2, (SELECT MAX(asset_no) + 1 FROM equip_info WHERE fam_id = 2))
Run Code Online (Sandbox Code Playgroud)
它说: NOT NULL constraint failed: equip_info.asset_no
如果 fam_id = 2 不存在,我如何才能将增量改为 1?
我想得到这个结果:
equip_id | fam_id | asset_no
----------|--------|-----------
1 | 1 | 1
2 | 1 | 2
3 | 1 | 3
4 | 2 | 1
Run Code Online (Sandbox Code Playgroud)
备注:equip_id是主键,自增
| 归档时间: |
|
| 查看次数: |
636 次 |
| 最近记录: |