同步表

 /// <summary>
        /// 同步按照NewTable中ID存储情况将数据按照规则同步至OldTable,并清空OldTable中多余数据行,返回错误消息
        /// </summary>
        public static string SetInIDPhase(DataTable OldTable, DataTable NewTable)
        {
            bool b;
            try
            {
                for (int i = OldTable.Rows.Count - 1; i >= 0; i--)
                {
                    b = false;
                    for (int n = 0; n < NewTable.Rows.Count; n++)
                    {
                        if (NewTable.Rows[n]["ID"].ToString() == OldTable.Rows[i]["ID"].ToString())
                        {
                            for (int m = 0; m < NewTable.Columns.Count; m++)
                            {
                                OldTable.Rows[i][m] = NewTable.Rows[n][m];
                            }
                            b = true;
                            break;
                        }
                    }
                    if (!b)
                        OldTable.Rows[i].Delete();

                }
                for (int i = 0; i < NewTable.Rows.Count; i++)
                {
                    b = false;
                    for (int n = 0; n < OldTable.Rows.Count && NewTable.Rows[i]["ID"] != DBNull.Value; n++)
                    {
                        if (OldTable.Rows[n].RowState == DataRowState.Deleted) continue;
                        if (NewTable.Rows[i]["ID"].ToString() == OldTable.Rows[n]["ID"].ToString())
                        {
                            b = true;
                            break;
                        }
                    }
                    if (!b)
                    {
                        DataRow tabRow;
                        tabRow = OldTable.NewRow();
                        for (int m = 0; m < NewTable.Columns.Count; m++)
                        {
                            tabRow[m] = NewTable.Rows[i][m];
                        }
                        OldTable.Rows.Add(tabRow);
                    }
                }
                return string.Empty;
            }
            catch (Exception e)
            {
                return e.Message;
            }
        }
时间: 2024-10-10 09:55:34

同步表的相关文章

使用PL/SQL工具比对表结构,同步表结构

需求:Oracle数据库,B库C库,某些表的表结构不一致,现在要求以C库为标准,同步更新B库表结构PL/SQL 连接到C库, Tools --> Compare User Objects .. --> 选择需要比对的表 --> Target Session (连接到B库) --> Compare --> 应用生成的sql修改语句同步表结构(建议把此时自动生成的sql复制出来,手工登录到B库根据实际需求选择性执行) PS:一个库不同用户下的表同样可以比对.

kettle-批量同步表数据

一.实验目标 利用kettle实现从mysql数据库中的dbf库批量同步表到dbm库(全量同步) 二.实验环境 dbf  库中表f1.f2.f3  .f1中1条数据,f2中100条数据,f3中2条数据. dbm库中表f1.f2.f3  .f1.f2.f3都为空表. f1.f2.f3表结构一样如下: CREATE TABLE `f1` ( `ID` bigint(20) NOT NULL AUTO_INCREMENT, `anlage` varchar(20) DEFAULT NULL, `car

python3 django连接mysql,同步表结构

第一步:安装PyMySQ代替MySQLdb pip3 install PyMySQL 然后在工程目录的__init__.py中填写下面两句话 import pymysql pymysql.install_as_MySQLdb() 问题:安装过程中如果提示No module named 'MySQLdb' 解决方法:python3使用上面的方法替代MySQLdb 原因:python3中,不再使用MySQLdb包了 第二步:配置数据库和INSTALLED_APPS(app下的settings.py)

sqlserver同步表的脚本

/* --同步读者 insert into [172.21.200.8].gdlisxp.dbo.读者库(借书证号,读者条码,姓名,性别,身份证号, 读者级别,级别代码,单位代码,单位,可外借,发证日期,失效日期,民族,保留信息) select xs.sfzh,xs.sfzh,xs.XM,(case xs.XBM when '1' then '男' when '2' then '女' else '' end) as xb,xs.sfzh,'学生','B',dw.单位代码,'14'+zy.zymc

多主一从mysql replication同步表的大胆尝试.

能否将不同机器上的不同库中的表同步到同一个机器的同一个库中?表是不同的.而且对于slave这台机子来说,这些表只用来读.   同步不同库的表很简单了,用 replicate-do-table=db_name.tbl_name 多个不同机子上的不同库的表同步到同一个机子的同一个库中,再加上下面这句. replicate-rewrite-db=from_name->to_name 配置slave 上的my.cnf cat my.cnf [mysqld_multi] mysqld = /usr/loc

关于在不同的数据库中的同步表的数据

实现功能:把数据库Db1中ammeter表的数据同步到Db2中的meter_bill表中去 代码如下: INSERT INTO db2.meter_bill ( oms_meter_id, house_id, meter_no, meter_number, first_quantity, zoom, last_month, last_month_quantity, last_month_create_date, current_month, current_month_quantity, cur

使用MERGE语句同步表

先建好測试环境: USE TEMPDB GO IF OBJECT_ID('T1') IS NOT NULL DROP TABLE T1 IF OBJECT_ID('T2') IS NOT NULL DROP TABLE T2 GO CREATE TABLE T1(ID1 INT,VAL1 VARCHAR(50)) CREATE TABLE T2(ID2 INT,VAL2 VARCHAR(50)) GO INSERT INTO T1 SELECT 1,'A' UNION ALL SELECT 2,

两个数据库同步表数据,一分钟一次

using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace GT.Client { public partial class Form1 : Form { public F

goldenagte使用expdp根据scn同步表.

1:首先停掉replicate进程 2:确定源端的数据库scn,Scn是源端的scn号,也就是当前数据库正式库的当前的scn号:select sysdate,dbms_flashback.get_system_change_number || '' from dual; 3.使用expdp导出表参看博客:http://blog.51cto.com/1937519/2177352或者使用dblink:查看INSERT INTO XX SELECT * FROM [email protected]