@api_view(['PUT'])
def updateRule1(request, id):
nums15 = 'OK'
json_data = json.loads(request.body)
# print(json_data)
con = None
cur = None
try:
con = cx_Oracle.connect('<server connection details>')
cur = con.cursor()
except cx_Oracle.DatabaseError as e:
print("Problem establishing connection with Oracle DB", e)
q = "INSERT INTO XXMSE.RE_PREDICATE (RULE_ID, PREDICATE_ID, INPUT_VALUE_ID1,
MATHEMATICAL_VALUE, INPUT_VALUE_ID2, BOOLEAN_OPERATOR) VALUES
('1','2','2000000','equals','30000000','None')"
print(q)
sql5 = cur.execute(q)
cur.execute(sql5)
con.commit()
if cur:
cur.close()
if con:
con.close()
return Response(nums15)
DB screenshot
|ID |Idx|Value_1 |Operator|Value_2 |Boolean |
|---|---|----------|--------|-----------|--------|
|1 |1 |1 |equals |2 |AND |
|1 |2 |2000000 |equals |30000000 |None |
|1 |2 |2000000 |equals |30000000 |None |
I see that there are 2 rows inserted into the DB. Django version is 4.1.1
What would be the reason for duplicate rows? Appreciate your help
I used breakpoint() and made sure that api is called getting once.There is no duplicate entries in the backend.
CodePudding user response:
you call twice cur.execute(...)
. Not sure what you want to do with that, but I think the twice entries come from this lines probably
CodePudding user response:
It seems that you are calling the execute function twice in your code
sql5 = cur.execute(q)
cur.execute(sql5)
remove the second line will fix the issue