njzh24 发表于 2013-03-26 20:56

sybase 12.5 复制 数据不一致的问题。

现象:发现目标端数据比源端少,经过排查,发现在源端执行delete .. where ...语句时,再目标端会多删数据,将where条件之外的数据也删了。
源端sql如下
select @2m_day= convert(char(8),dateadd(mm,-2,getdate()),112)--两个月前
delete LOG_2M where convert(char(8),sj,112) <@2m_day
经过测试,发现经过复制,在目标端,部分不在时间范围之内的数据也被删了,导致两边数据不一致。
难道是复制传输过程中出错?
求大神解释。

njzh24 发表于 2013-03-26 20:58

delete CM_CRD_SD_LOG_JF_2M where convert(char( 8 ),sj,112) <@2m_day

njzh24 发表于 2013-03-27 11:46

我又做了个试验,A表复制到B表,表结构一样,无索引,无触发器等,就两张裸表,inser 时 复制没问题。按时间delete时,问题来了,B表删的数据比A表多。。。
表结构如下
create table ZH_2M_A (
      kid                           varchar(20)                      not null,
      kh                              varchar(20)                      not null,
      str                           varchar(10)                      not null,
      orgid                           varchar(10)                      not null,
      pcid                            varchar(20)                      not null,
      pclx                            varchar(10)                      not null,
      pczjf                           float(16)                        not null,
      pcjf                            float(16)                        not null,
      jflx                            varchar(4)                     not null,
      pcrq                            char(8)                        not null,
      rq                              char(8)                        not null,
      sj                              datetime                         not null,
      lx                              varchar(10)                      not null,
      dh                              varchar(20)                      not null,
      djlx                            varchar(10)                      not null,
      str1                            varchar(30)                      not null,
      str2                            varchar(30)                      not null,
      str3                            varchar(30)                      not null,
      num1                            numeric(12,2)                  not null,
      num2                            numeric(12,2)                  not null,
      num3                            numeric(12,2)                  not null   
)
lock allpages
on 'default'
go

在A表执行的sql 为 delete from ZH_2M_A where convert( char ( 8 ),sj,112 ) ='20130127'
在B表中,SJ为'20130128','20130129' 也删了一些数据。(表中元数据,SJ 只有这三个时间)

baiynije 发表于 2013-03-28 08:49

有沒有觸發器?
页: [1]
查看完整版本: sybase 12.5 复制 数据不一致的问题。