2012-06-11 41 views
0

我有一个简单的表TICKETINFO和TICKETINFO_REMARK之间的一对一关系。删除并插入相同的主键代替更新

TICKETINFO_REMARK 
TICKETINFOID fk, REMARK varchar(128) 

和TICKETINFOID将从TICKETINFO表的外键,并有填充TICKETINFO_REMARK的备注字段TICKETINFO为相应TICKETINFOID的备注栏一起。

对于1 TICKETINFOID会有一个备注。

插入工作正常。现在

我的问题是:

我的要求是,我不应该更新TICKETINFO_REMARK任何记录,由于一些性能问题。我需要先删除记录,然后用相同的TICKETINFOID和新的REMARK插入。

例如:

TICKETINFO表有:

**TICKETINFOID** :  1 
**REMARK** : ABC 
**TICKETDATE** :2012-06-12 

TICKETINFO_REMARK有:

**TICKETINFOID** :  1 
**REMARK** : ABC 

现在我想改变这句话在TICKETINFO_REMARK为 “XYZ123” 所以我要从TICKETINFO_REMARK删除条目并重新插入它看起来像这样

**TICKETINFOID** :  1 
**REMARK** : XYZ123 

会做什么代码? 请帮忙!!!!

+1

你试过了什么?为什么更新会有性能问题,而不是删除后再插入? –

+0

我不明白更新与删除/插入限制。 你可以尝试REPLACE,但在引擎盖下,我认为这会做一个更新,如果行键存在和否则插入。 –

+0

发生溢出问题是因为将varchar字段从较小的长度更新为较大的长度。这就是为什么这样的要求来了。你能否提供一些有关代码的解决方案。 – saptarshi

回答

0

首先,你应该选择一个TICKETINFO_REMARK记录表格,如果它已经找到你应该从“TICKETINFO_REMARK”表中删除这个记录,然后用这个TICKETINFOID插入新记录。它只是你的需求的逻辑。如果你想获得示例代码,请告诉我你的CRUD操作使用了哪些技术,例如JPA,HIBERNATE,IBATIS或JDBC等。

+0

我正在使用hibernate注释。 – saptarshi