2015-01-28 1 views
1

내가이 테이블 equip_info가 null의 취득 :SQLite는이 : 최대 값은 행이 존재하지 않는 경우 제로로 설정하거나

equip_id | fam_id | asset_no 
    ----------|--------|----------- 
    1  | 1  | 1 
    2  | 1  | 2 

내가 다른 fam_id에서 새 equip_id을 삽입 할과 asset_no를 얻을 수를 증분.

나는 그렇게 할 경우 : 나는 그렇게 할 경우,

equip_id | fam_id | asset_no 
    ----------|--------|----------- 
    1  | 1  | 1 
    2  | 1  | 2 
    3  | 1  | 3 

:하지만

INSERT INTO equip_info (fam_id, asset_no) 
VALUES (2, (SELECT MAX(asset_no) + 1 FROM equip_info WHERE fam_id = 2)) 

가 말했다 :

INSERT INTO equip_info (fam_id, asset_no) 
VALUES (1, (SELECT MAX(asset_no) + 1 FROM equip_info WHERE fam_id = 1)) 

내가 울부 짖는 결과를 얻을 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 

비고 : equip_id는 기본 키가 일치하는 행이없는 경우

답변

2

MAX(asset_no)이 NULL autoincremented.

NULL을 다른 값으로 바꾸려면 을 IFNULL(MAX(asset_no), 0)으로 바꾸십시오.

관련 문제