ITPUB??ì3
ITPUB论坛 » 内存数据库 » 请各位大大帮忙解答一个tt cache group的问题

标题: 请各位大大帮忙解答一个tt cache group的问题
离线 loveleana
初级会员



精华贴数 0
个人空间 0
技术积分 88 (18149)
社区积分 0 (1117894)
注册日期 2007-3-4
论坛徽章:0
      
      

发表于 2007-11-27 17:23 
请各位大大帮忙解答一个tt cache group的问题

请各位大大帮忙解决小弟的一个疑问 ^^

我建了一个usermanaged cache group,sql如下:
create usermanaged cache group ucg_cjc
from intf_tmp.cjc_elec
(
elec_string varchar(30) not null primary key,
depot_id    varchar(30) not null,
propagate
);
call ttcachestart;
load cache group ucg_cjc where (depot_id='12345678') commit every 0 rows;

cjc_elec表的主键是elec_string
ttisql中执行update cjc_elec set elec_string='test1234' where elec_String='FITTINGINIT2360002';时
报错:

1000: Cannot set primary key columns to different values
The command failed.

是不是cache group中的表,不能更新主键的?


只看该作者    顶部
离线 tom_111
++天道酬勤++


精华贴数 1
个人空间 0
技术积分 1861 (865)
社区积分 41 (5289)
注册日期 2007-8-24
论坛徽章:5
现任管理团队成员授权会员2008北京奥运纪念徽章:帆船2008年新春纪念徽章生肖徽章2007版:鼠 
      

发表于 2007-11-27 18:23 
学习!!!关注!!!


__________________
=========DBA格言================
从理论中来,到实践中去,再回到理论中。
不断的重复,不断的循环!!!
做人做事一定要厚道!!!
做DBA更应该厚道!!!
江湖越走越老,胆子越走越小!!!
***【技术讲究实践和理论】【玉雕讲究打磨和上色】***
***【做人讲究人品和魅力】【做事讲究方法和技巧】***
===============================
Oracle技术交流联盟:(MSN群)mgroup10396@hotmail.com
ALTIBASE技术交流联盟:(MSN群)group199500@xiaoi.com
ITPUB内存数据库版块:http://www.itpub.net/forum162.html
只看该作者    顶部
离线 nocode
一般会员



精华贴数 0
个人空间 0
技术积分 152 (11738)
社区积分 0 (48664)
注册日期 2001-12-14
论坛徽章:0
      
      

发表于 2007-11-28 18:01 
Updating values in primary key columns in not supported.


__________________
我初学,大家多帮忙^-^!
只看该作者    顶部
离线 tom_111
++天道酬勤++


精华贴数 1
个人空间 0
技术积分 1861 (865)
社区积分 41 (5289)
注册日期 2007-8-24
论坛徽章:5
现任管理团队成员授权会员2008北京奥运纪念徽章:帆船2008年新春纪念徽章生肖徽章2007版:鼠 
      

发表于 2007-11-28 18:04 


QUOTE:
原帖由 nocode 于 2007-11-28 18:01 发表
Updating values in primary key columns in not supported.

什么更新时不支持主键列?这个怎么处理啊,更多的实际应用中好想避免不了如此使用吧!!!


__________________
=========DBA格言================
从理论中来,到实践中去,再回到理论中。
不断的重复,不断的循环!!!
做人做事一定要厚道!!!
做DBA更应该厚道!!!
江湖越走越老,胆子越走越小!!!
***【技术讲究实践和理论】【玉雕讲究打磨和上色】***
***【做人讲究人品和魅力】【做事讲究方法和技巧】***
===============================
Oracle技术交流联盟:(MSN群)mgroup10396@hotmail.com
ALTIBASE技术交流联盟:(MSN群)group199500@xiaoi.com
ITPUB内存数据库版块:http://www.itpub.net/forum162.html
只看该作者    顶部
离线 nocode
一般会员



精华贴数 0
个人空间 0
技术积分 152 (11738)
社区积分 0 (48664)
注册日期 2001-12-14
论坛徽章:0
      
      

发表于 2007-11-28 19:12 


QUOTE:
原帖由 tom_111 于 2007-11-28 18:04 发表

什么更新时不支持主键列?这个怎么处理啊,更多的实际应用中好想避免不了如此使用吧!!!

目前看TT本身是有这个限制,这可能与同步机制以及TT cache的instance结构有关吧。
这个问题可以通过设置PassThrough或者在oracle端修改来实现。


__________________
我初学,大家多帮忙^-^!
只看该作者    顶部
离线 liyongdong
版主


精华贴数 5
个人空间 0
技术积分 4649 (283)
社区积分 126 (2970)
注册日期 2001-11-25
论坛徽章:23
现任管理团队成员ITPUB元老会员2006贡献徽章授权会员2008年新春纪念徽章生肖徽章2007版:鸡
生肖徽章2007版:龙ITPUB新首页上线纪念徽章生肖徽章:虎生肖徽章:猪生肖徽章:狗生肖徽章:鸡

发表于 2007-11-28 20:18 


QUOTE:
原帖由 nocode 于 2007-11-28 19:12 发表


目前看TT本身是有这个限制,这可能与同步机制以及TT cache的instance结构有关吧。
这个问题可以通过设置PassThrough或者在oracle端修改来实现。

能否详细说说。


__________________
人与人之间最大的信任是精诚相见人生没有停靠站,自我本身永远是一个出发点。无论何时何地,只要创造就有收获,只有不息的奋进,才能证明生命的存在。
只看该作者    顶部
离线 loveleana
初级会员



精华贴数 0
个人空间 0
技术积分 88 (18149)
社区积分 0 (1117894)
注册日期 2007-3-4
论坛徽章:0
      
      

发表于 2007-11-28 21:38 
nocode 大大,多谢回复!

如果有些应用,一定要修改primary key,怎么办?

做上面测试时,我已经在.odbc.ini中设置了passthrough=2.如果设置到3,会不会失去cache的意义了?
passthroug是否能动态设置?
update大量数据时,如果全部传播到oracle端修改,感觉有点怪怪的.


只看该作者    顶部
离线 nocode
一般会员



精华贴数 0
个人空间 0
技术积分 152 (11738)
社区积分 0 (48664)
注册日期 2001-12-14
论坛徽章:0
      
      

发表于 2007-11-29 09:02 


QUOTE:
原帖由 loveleana 于 2007-11-28 21:38 发表
nocode 大大,多谢回复!

如果有些应用,一定要修改primary key,怎么办?

做上面测试时,我已经在.odbc.ini中设置了passthrough=2.如果设置到3,会不会失去cache的意义了?
passthroug是否能动态设置?
update大 ...

可以用ttOptSetFlag在事务级设置PassThrough为3就不会影响其它事务在cache的修改了。
一般来说,一个合理的应用应该减少主键的频繁或大批量修改。


__________________
我初学,大家多帮忙^-^!
只看该作者    顶部
离线 loveleana
初级会员



精华贴数 0
个人空间 0
技术积分 88 (18149)
社区积分 0 (1117894)
注册日期 2007-3-4
论坛徽章:0
      
      

发表于 2007-11-29 09:46 
哦..原来是这样~~多谢nocode和楼上各位的回复,呵呵


只看该作者    顶部
离线 tom_111
++天道酬勤++


精华贴数 1
个人空间 0
技术积分 1861 (865)
社区积分 41 (5289)
注册日期 2007-8-24
论坛徽章:5
现任管理团队成员授权会员2008北京奥运纪念徽章:帆船2008年新春纪念徽章生肖徽章2007版:鼠 
      

发表于 2007-11-30 14:06 


QUOTE:
原帖由 nocode 于 2007-11-29 09:02 发表


可以用ttOptSetFlag在事务级设置PassThrough为3就不会影响其它事务在cache的修改了。
一般来说,一个合理的应用应该减少主键的频繁或大批量修改。

不知道楼上是否可以详细解释一下此用法的具体意义,很想深入了解一下。当然了实际应用中是无法避免主键的频繁或大批量修改的,如果什么事情都可以通过开发人员来避开,那还需要数据库DBA干什么?有些问题不是一开始就可以发现的!


__________________
=========DBA格言================
从理论中来,到实践中去,再回到理论中。
不断的重复,不断的循环!!!
做人做事一定要厚道!!!
做DBA更应该厚道!!!
江湖越走越老,胆子越走越小!!!
***【技术讲究实践和理论】【玉雕讲究打磨和上色】***
***【做人讲究人品和魅力】【做事讲究方法和技巧】***
===============================
Oracle技术交流联盟:(MSN群)mgroup10396@hotmail.com
ALTIBASE技术交流联盟:(MSN群)group199500@xiaoi.com
ITPUB内存数据库版块:http://www.itpub.net/forum162.html
只看该作者    顶部
相关内容


CopyRight 1999-2006 itpub.net All Right Reserved.
北京皓辰广域网络信息技术有限公司. 版权所有
E-mail:Webmaster@itpub.net
京ICP证:010037号 联系我们 法律顾问