RT.
现在有如下思路:请各位指点一下。
0.备份旧数据库,如果有备份则跳过此步。
1.给所有旧数据库中的表改名,添加_bak。(此时若有新数据进入,会异常)
2.删除所有旧数据库表中的约束。(此时若有新数据进入,会异常)
3.在数据库中新建更改后的表结构。(系统处在运行时,会有新数据进入到新表结构中)
4.开启事务,(以记录为粒度)从旧表中选出一条数据插入到与其对应的新表中。并删除旧表中的被选中记录。(由于表中的外键约束,所以数据迁移的顺序必须注意)。
现在有如下思路:请各位指点一下。
0.备份旧数据库,如果有备份则跳过此步。
1.给所有旧数据库中的表改名,添加_bak。(此时若有新数据进入,会异常)
2.删除所有旧数据库表中的约束。(此时若有新数据进入,会异常)
3.在数据库中新建更改后的表结构。(系统处在运行时,会有新数据进入到新表结构中)
4.开启事务,(以记录为粒度)从旧表中选出一条数据插入到与其对应的新表中。并删除旧表中的被选中记录。(由于表中的外键约束,所以数据迁移的顺序必须注意)。
解决方案 »
- mysql的报错,请高手帮忙指出问题
- 请教一个where + in + order by 多字段排充问题
- MySQL里的USER表 终端输出和导出不一致,太神奇了
- MYSQL对图片的操作
- 存储过程中游标内为什么无法使用变量设值呢 附代码
- 一个用于先select出id,再根据id进行update的语句,出错了
- mysql分区表
- EMS SQL MANAGER录入数据的问题
- 如何提高数据库(mysql)操作的性能?
- !!50分求PostgreSQL简单问题:为什么我不能用MSSQL一样用where ID=1查询
- 如何挑选出数组中不在数据库中的值?
- 如何改变"禁用删除数据库(DROP DATABASE)语句"的设置
2) KILL 掉所有不必要的连接,有时会将应用程序指向错误界面,以减少对业务的影响。
3) 把测试的脚本提交运行。进行 alter table ...等操作。 随时监控数据库,服务器各项参数和状态。
4) 收尾恢复。 或者 执行rollback 取消本次升级。