如何修改mysql数据库表结构

如何修改mysql数据库表结构,第1张

Online DDL 工具:pt-osc

对于 MySQL Online DDL 目前主流的有三种工具:

原生 Online DDL;

pt-osc(online-schema-change),

gh-ost

本文主要讲解 pt-online-schema-change 的使用以及三种工具的简单对比。

一、原理及限制

1.1 原理

1. 创建一个与原表结构相同的空表,表名是 _new 后缀;

2. 修改步骤 1 创建的空表的表结构;

3. 在原表上加三个触发器:delete/update/insert,用于 copy 数据过程中,将原表中要执行的语句在新表中执行;

4. 将原表数据以数据块(chunk)的形式 copy 到新表;

5. rename 原表为 old 表,并把新表 rename 为原表名,然后删除旧表;

6. 删除触发器。

   PowerBuilder是目前公认的 最佳的数据库前端开发工具之一 在实际开发应用中 经常会遇到修改数据库表结构的情况 用PowerBuilder修改数据库表结构与用Foxbase修改数据库结构不同 在PowerBuilder中 除可以在数据库表结构中添加字段名外 无法直接修改数据库表结构 如删除某个字段名或类型或字段名长度等 都会导致数据库表记录的丢失 我们通过实践探索 总结了几种方法仅供大家参考 请大家批评指正

一 修改数据库表结构 数据库表中没有记录

方法1 将表结构以Export Table 文件格式输出

从Database中选择要修改的数据库表Table

从Objects中选择Export Table/View Syntax to Log 取名保存即选Save Log As 以* sql格式保存

从Objects中选择Database Administration

从File中选择Dos Open 选文件名File name * sql 打开进行修改

从Objects中选择Execute SQL 即产生一新的数据库表结构

注意 Table名不要同名

方法2 将表结构以SQL Syntax 文件格式输出

从Database中选择要修改的数据库表Table

按Preview键

从File中选择Save Rows as File Format 选SQL Syntax 取表名* sql保存

从File中选择Dos Open 打开表名* sql 进行修改

取表名后 Execute SQL

注意 此种方法没有生成Primary Key

二 修改数据库表结构 保存原数据库表中记录

方法1 先修改数据库表结构 用SQL语句转移数据库表中记录

将表 生成表 sql 修改结构 将表 另取名为表

运行表 sql 生成表 此时产生一新的数据库表结构

从Objects中选择Database Administration 写SQL Statement Insert into 新表名select * from 旧表名 Execute SQL 将旧表中所有字段内容转入新表中

lishixinzhi/Article/program/PB/201311/24573


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9954962.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-03
下一篇 2023-05-03

发表评论

登录后才能评论

评论列表(0条)

保存