2013-01-11 3 views
0

database.insert (table, null, values)와 함께 SQLite에 레코드를 삽입하고 싶습니다.SQLite는 두 개 이상의 필드에 대해 _id 값이있는 레코드를 삽입합니다.

TABLE t2 (_id, field1, field2) 
.. 

val.setVal1(null); 
val.setVal2(val2); 
.. 

if(val.getVal1==null){ 
    values.put(field1, _id); 
}else{ 
    values.put(field1, var.val1); 
} 
values.put(field2, var.val2); 

database.insert("t2", null, values); 

"values.put (field1, _id);"와 같이 할 수 있습니까? _id는 database.insert()에서 생성됩니다.

참고 : 하나의 인서트 통화에 대한 해결책을 찾고 있습니다. (field1 = _id) 행 삽입 및 업데이트가 쉽습니다.

+2

실제로 무엇을 요구하고 있는지 확실하지 않습니다. 좀 더 나은 목표를 설명하고 싶을 수도 있습니다. –

+0

'field1','val1','var','values' 이것은 여러분의 코드를 이해하지 못하게하는 일반적인 단어입니다 ... 어쩌면 여러분은 실제 샘플을 사용하려고합니다 ... – WarrenFaith

답변

1

나는 지금 생각합니다. 당신은 val 객체에서을 사용할 수 있다면 특정 SQLite 행에 값을 입력 할 수 있는지 묻습니다. _id 필드 그렇지 않으면 데이터베이스를 삽입하는 동안 일반적으로 완료된 것처럼 해당 열의 고유 ID를 자동으로 작성하기를 원합니다. 이 올바른지?

이 목적을 위해 나는이 목적을 심각하게 재고 할 것입니다. 고유해야 할 필요가 있으므로 _id 열의 값을 지정하면 안됩니다. 그렇지 않으면 예외가 발생합니다. 또한, 유일한 목적은 시스템의 고유 한 식별자이기 때문에이 값을 개인적으로 아는 것은 아무 쓸모가 없어야합니다. 당신이 아직이 기능이 필요한 경우

, 나는 테이블에 다른 필드를 만드는 게 좋을 것 당신은 무작위로 생성 된 번호 또는 val.getVal1 값을 입력 할 수 있습니다 (많은 _id 열하지만 하지을 같은).

+0

답을 고맙습니다. 그러나 이것은 "field1"에 관한 것입니다. "val.getVal1 == null" "field1"에 "_id"값을 삽입하고 싶습니다. 그리고 "_id"값은 database.insert (...) 호출에서 생성됩니다. 하나의 database.insert (...) 호출로 이것을 실행할 수 있다면 이것이 주요한 질문이다. – Solata

+0

예 가능합니다. 'insert' 메쏘드는 삽입시 생성 된'long' id를 반환합니다. 따라서 변수에 이름 만 지정하면 필요한 변수를 모두 수행 할 수 있습니다. 전의. 'lond id = database.insert ("t2", null, values); val.setVal1 (id); ' – mango

+0

이것은 일반적인 절차입니다. 그리고 "field1"에 "id"를 저장하려면 database.update (...)를 호출합니다. 그러나 이것은 insert() 및 update() 호출을 의미합니다. 내 질문은 하나의 database.insert (...) – Solata

관련 문제