我的数据库中有两个表; debt
和debtor
。我希望只有一行代表一个特定的债务人,然后在添加新债务时更新列(totalDebts,totalAmountOwed)。债务表可以包含许多引用特定债务人的列。我已经使用了在将债务作为债务和债务人表的主要关键字时提供的电话号码,并且表格的添加没有问题:
try {
debt.setCustomerName(params[0]);
debt.setCustomerPhone(params[1]);
debt.setItemName(params[2]);
debt.setUnitPrice(Double.parseDouble(params[3]));
debt.setItemQuantity(Integer.parseInt(params[4]));
debt.setAmountPaid(Double.parseDouble(params[5]));
debt.setAmountDue(Double.parseDouble(params[6]));
debt.setDueDate(params[7]);
debtor.setDebtorName(params[0]);
debtor.setPhoneNumber(params[1]);
debtor.setTotalAmountOwed(Double.parseDouble(params[6]));
debtor.setTotalDebts(0);
databaseHandler.addDebt(debt);
databaseHandler.addDebtor(debtor);
dabaseHandler.close(); //close the database connection
这是我添加记录时的结果:
和债务表:
我的问题是这些:
非常感谢任何帮助我的伪代码。
答案 0 :(得分:0)
至1: 您必须执行更新查询,您可以尝试这样的事情:
public void createDebtor(Debtor debtor){
try{
bd.execSQL("INSERT INTO....");
}catch(SQLException){
bd.exectSQL("UPDATE...");
}
}
到2: 我认为你必须在新表中添加一个新的colummn(使用你的引用表id),然后在db中添加新的约束。添加新约束的sql语句是:
ALTER TABLE a CONSTRAINT FOREIGN KEY name REFERENCES table(column)