仓酷云

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

[学习教程] MYSQL网站制作之数据库数据复制

[复制链接]
小妖女 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 22:30:39 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
对免费版的用户也具有充足的支持服务。在dev.mysql.com上,一个大型的MySQL学习教程强大社区用户和开发者可以讨论所有关于MySQL的事情。这个站点拥有博客、指南、视频、技术交流会、白皮书和论坛等方式的交流。数据|数据库/*--数据库数据复制
将一个数据库中的数据复制到另外一个数据库
假如某列在方针数据库中为标识列,将不会被复制
合用局限:数据库布局产生了变更,想将旧数据库举行晋级
如许就能够依据新的数据库布局创立一个空库,然后
将旧数据库的一切数据复制到新库中
--*/
/*--挪用示例
execp_copydb源数据库,方针数据库
execp_copydbacc_五医,acc_演示数据8
--*/
ifexists(select*fromdbo.sysobjectswhereid=object_id(N[dbo].[p_copydb])andOBJECTPROPERTY(id,NIsProcedure)=1)
dropprocedure[dbo].[p_copydb]
GO
createprocp_copydb
@o_dbnamesysname,--要复制数据的数据库--源数据库
@n_dbnamesysname,--吸收数据的数据库--方针数据库
@cleardbbit=0--清空方针数据库
as
declare@sqlnvarchar(4000)
--禁用束缚,避免复制时的数据抵触
set@sql=declare#tbccursorforselectname,tbname=object_name(parent_obj)
from+@n_dbname+..sysobjectswherextypein(C,F)
exec(@sql)
declare@namesysname,@tbnamesysname
open#tbc
fetchnextfrom#tbcinto@name,@tbname
while@@fetch_status=0
begin
set@sql=altertable+@n_dbname+..[+@tbname+]NOCHECKCONSTRAINT[+@name+]
exec(@sql)
fetchnextfrom#tbcinto@name,@tbname
end
close#tbc
--复制数据
declare@sql1varchar(8000)
set@sql=declare#tbcursorforselecta.namefrom
+@o_dbname+..sysobjectsainnerjoin
+@n_dbname+..sysobjectsbona.name=b.name
wherea.xtype=Uandb.xtype=U
exec(@sql)
open#tb
fetchnextfrom#tbinto@tbname
while@@fetch_status=0
begin
select@sql1=
,@sql=select@sql1=@sql1+,[+a.name+]from(
selectnamefrom+@o_dbname+..syscolumnswhereidin
(selectidfrom+@o_dbname+..sysobjectswherename=+@tbname+)
)ainnerjoin(
selectnamefrom+@n_dbname+..syscolumnswherestatus0x80andidin
(selectidfrom+@n_dbname+..sysobjectswherename=+@tbname+)
)bona.name=b.name
execsp_executesql@sql,N@sql1nvarchar(4000)out,@sql1out
select@sql1=substring(@sql1,2,8000)
exec(insertinto+@n_dbname+..[+@tbname+](+@sql1
+)select+@sql1+from+@o_dbname+..[+@tbname+])
if@@error0
print(insertinto+@n_dbname+..[+@tbname+](+@sql1
+)select+@sql1+from+@o_dbname+..[+@tbname+])
fetchnextfrom#tbinto@tbname
end
close#tb
deallocate#tb
--数据复制完成后启用束缚
open#tbc
fetchnextfrom#tbcinto@name,@tbname
while@@fetch_status=0
begin
set@sql=altertable+@n_dbname+..[+@tbname+]CHECKCONSTRAINT[+@name+]
exec(@sql)
fetchnextfrom#tbcinto@name,@tbname
end
close#tbc
deallocate#tbc
go

下面我将描述五个不使用MySQL的响亮理由。
再见西城 该用户已被删除
沙发
发表于 2015-1-18 05:31:26 | 只看该作者
从底层原理到表层引用,书籍多的很。个人认为没有什么那本书好?这样的说法。主要看和个人的学习方法是否适合。
冷月葬花魂 该用户已被删除
板凳
发表于 2015-1-21 11:48:20 | 只看该作者
也可谈一下你是怎么优化存储过程的?
再现理想 该用户已被删除
地板
发表于 2015-1-30 17:33:43 | 只看该作者
同样会为索引视图等应用带来麻烦。看看行级和事务级的快照数据放在tempdb中,就能感觉到目前架构的尴尬。
变相怪杰 该用户已被删除
5#
发表于 2015-2-6 14:28:52 | 只看该作者
原理很简单,对要求长时间计算某一时间点的报表生成和防用户操作错误很有帮助。但是比起Oracle10g的闪回技术还是细粒度不够。可惜!
飘灵儿 该用户已被删除
6#
发表于 2015-2-16 13:02:06 | 只看该作者
始终遗憾SQLServer的登陆无法分配CPU/内存占用等指标数。如果你的SQLServer给别人分配了一个只可以读几个表的权限,而这个家伙疯狂的死循环进行连接查询,会给你的系统带来很大的负担。
乐观 该用户已被删除
7#
发表于 2015-3-5 06:46:55 | 只看该作者
从项目平台的选择上讲,我们关心的,应该是一款产品能不能满足任务需求,而不是网上怎么说。
愤怒的大鸟 该用户已被删除
8#
发表于 2015-3-11 23:58:26 | 只看该作者
语句级快照和事务级快照终于为SQLServer的并发性能带来了突破。个人感觉语句级快照大家应该应用。事务级快照,如果是高并发系统还要慎用。如果一个用户总是被提示修改不成功要求重试时,会杀人的!
小女巫 该用户已被删除
9#
发表于 2015-3-19 16:46:11 | 只看该作者
入门没那么困难,精通没那么容易
海妖 该用户已被删除
10#
发表于 2015-3-29 10:47:06 | 只看该作者
对递归类的树遍历很有帮助。个人感觉这个真是太棒了!阅读清晰,非常有时代感。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-11-11 04:53

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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