仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 639|回复: 7
打印 上一主题 下一主题

[学习教程] 在sql语句中完成数据的主从显现

[复制链接]
金色的骷髅 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 14:07:10 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
目前的方案是用mysqlbinlog工具,增加一个Flashback参数,输出结果为一个新的binlog文件――姑且叫做flashbacklog,这个flashbacklog顺序执行,可制定某张表和执行到哪个pos,来实现数据库的闪回。明天有位做erp的伴侣在群中问,怎样在sql中完成数据的主从显现呢?详细的就是假如数据的主表信息与上条数据的主表信息不异,就把该条数据的主表信息清空,如许看来起数据的附属干系就很分明了。以下图:
假如原始数据是如许的:


需完成的效果就是如许的:


本人想了一个对照复杂的思绪,以下:
先创立示例表并添补数据:
createtable#a
(
IDint,
namevarchar(50),
addressvarchar(50),
sortdecimal(18,4)
)

insertinto#a(ID,name,address,sort)
select1,张,上海,20
unionall
select2,张,上海,30
unionall
select3,张,上海,40
unionall
select4,李,深圳,40
unionall
select5,李,深圳,40

可使用sql"select*from#a"检察了局以下:


然后创立另外一个表,用来存储了局集
createtable#b
(
IDint,
namevarchar(50),
addressvarchar(50),
sortdecimal(18,4),
PIDint
)

在这个表中我增添了PID列,由于了局表中的主表信息会被清空,以是我们必要借助PID列来断定数据的附属干系。

先将一切主表信息增加进#b表中,由于是主表的信息,以是我们初始化PID列的值为0:
insertinto#b(ID,name,address,sort,PID)
select*,0from#at1
whereid=(selectmin(id)from#at2wheret1.name=t2.nameandt1.address=t2.address)

然后将别的的从表数据增加到#b中,记得要将主表的ID值填到从表的PID列了。
insertinto#b(ID,name,address,sort,PID)
selectt1.ID,,,t1.Sort,t2.IDfrom#at1,#bt2
wheret1.name=t2.nameandt1.address=t2.addressandt1.idt2.id

到这里,实在我们的数据已增加进#b表了,只是还未能按准确的按次来显现,以下图:


我们还必要给数据准确的排序:
update#bsetPID=IDwherepid=0
select*from#borderbypidasc,idasc

如许,我们就完成想要的功效了,最初了局以下图:


最初记的删除一时表哦
droptable#a
droptable#b
虽然可以将一个droptable语句转换成先delete再删表,性能却会降低很多。这里我们用上面说道的另外一种可用数据:“操作前数据备份”。
金色的骷髅 该用户已被删除
沙发
 楼主| 发表于 2015-1-18 12:00:06 | 只看该作者
如安全管理、备份恢复、性能监控和调优等,SQL只要熟悉基本操作就可以,只要程序设计部分只要稍加了解即可(如存储过程、触发器等)。
小妖女 该用户已被删除
板凳
发表于 2015-1-25 19:07:54 | 只看该作者
而SQLServer如果能像Oracle一样可以为登陆分配如:5%的cpu,10%的内存。就可以解决这个漏洞。
再见西城 该用户已被删除
地板
发表于 2015-2-9 05:11:22 | 只看该作者
比如日志传送、比如集群。。。
简单生活 该用户已被删除
5#
发表于 2015-2-27 00:52:26 | 只看该作者
Mirror可以算是SQLServer的Dataguard了。但是能不能被大伙用起来就不知道了。
若天明 该用户已被删除
6#
发表于 2015-3-8 19:50:04 | 只看该作者
是否碎片会引发效率问题?这都是需要进一步探讨的东西。varbinary(max)代替image也让SQLServer的字段类型更加简洁统一。
因胸联盟 该用户已被删除
7#
发表于 2015-3-16 14:46:49 | 只看该作者
多走走一此相关论坛,多看一些实例开发,多交流0经验,没什么的,我也是刚学没多久!加油
透明 该用户已被删除
8#
发表于 2015-3-22 23:46:08 | 只看该作者
可以动态传入参数,省却了动态SQL的拼写。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-23 02:58

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表