2014-02-10 3 views
0

내 itemNumber 필드가 다른 테이블의 기본 키로 사용되기 때문에 DAL (bigint_id = True)로 설정됩니다. 하나 개의 특정 테이블에서 나는 고유 필드로 사용하고 있지만 삽입하려고 할 때Web2py BigInt가 0으로 표시됩니다. Bigint_id = True

mydb.define_table('myitems', 
        Field('id', 'id',notnull=True,unique=True), 
        Field('itemNumber', 'bigint',notnull=True,unique=True), 
        Field('uniqueTitle', 'string'), 

키 차, 그것은 항상 "0"으로 삽입합니다. 예를 111,078,127,801

mydb.myitems.update_or_insert(mydb.myitems.itemNumber==int(row), 
           uniqueTitle=fileName) 

내가 인쇄 INT (행) 및 인쇄 행을했고, 모두 적절한 값을 표시 : 그 행을 인쇄 할 때 그러나, 나는 적절한 수를 볼 것입니다. . 그것은 내가 모두 같은 결과 BIGINT 정수 모두 같은 필드 ('itemNumber'을 지정 시도 0 에 강제로 삽입시의

감사합니다,

+0

'.update_or_insert' 문이 itemNumber에 값을 전혀 삽입하지 않습니다. itemNumber가'int (row)'와 일치하는 레코드의 uniqueTitle 필드를 단순히 업데이트하는 것입니다. 삽입시, 나는 itemNumber가 지정되지 않았고'notnull = True'를 가지고 있다고 가정 할 때 데이터베이스 오류가 발생할 것이라고 생각할 것입니다. (원래 테이블 생성 후에'notnull = True'를 추가했다면 해당 제약 조건은 데이터베이스에서 업데이트됩니다). – Anthony

+0

.update_or_insert를 사용하여 삽입을 수행하는 경우 행을 itemNumber에 삽입하는 올바른 방법은 무엇입니까? – user3211229

답변

0

시도 :

첫 번째 인수가 쿼리 인 경우
mydb.myitems.update_or_insert(mydb.myitems.itemNumber==int(row), 
           itemNumber=int(row), uniqueTitle=fileName) 

, 그것은 단순히 기록. 당신은 아직도 당신이/업데이 트를 삽입 할 필드의 모든 값을 지정해야합니다 (있는 경우) 업데이트를 선택합니다.

+0

확실히 해결되었습니다! 감사, 앤서니 – user3211229