mysql 更改表结构

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql 更改表结构相关的知识,希望对你有一定的参考价值。

rev | varchar(10)的长度怎么设置成15,varchar(15)

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. 删除触发器。

参考技术A 先点一下表前面的+,下面会弹出有一个叫Columns,右键单机Columns,点击Manage Columns,进去就能改了,进去后能看懂的 参考技术B ALTER TABLE 【表名字】 MODIFY 【列名称】VARCHAR(15); 参考技术C 你有mysql管理软件么,类似Navicat!那个可以直接修改表结构!没有可以dos操作!alter table 表名 字段名 varchar(15) 参考技术D 下载个Navicat,连上你的mysql,可以直接界面 修改

9)-MySQL修改表结构

MySQL ALTER TABLE语句简介


可以使用alter table语句来更改现有表的结构。 alter table语句可用来添加列,删除列,更改列的数据类型,添加主键,重命名表等等。 以下说明了alter table语句语法:
 
alter table table_name action1[,action2,…]
 
要更改现有表的结构:
 
    首先,在alter table子句之后指定要更改的表名称。
 
    其次,列出一组要应用于该表的操作。操作可以是添加新列,添加主键,重命名表等任何操作。alter table语句允许在单个alter table语句中应用多个操作,每个操作由逗号(,)分隔。
 
让我们创建一个用于练习alter table语句的新表。
 
我们将在示例数据库中创建一个名为tasks的新表,以下是创建tasks表的脚本:
 
drop table if exists tasks;
create table tasks (
    task_id int not null,
    subject varchar(45) null,
    start_date date null,
    end_date date null,
    description varchar(200) null,
    primary key (task_id),
    unique index task_id_unique (task_id asc)
);
 
使用mysql alter table语句更改列

 
使用mysql alter table语句来设置列的自动递增属性 #修改列 
 
假设您希望在任务表中插入新行时,task_id列的值会自动增加1。那么可以使用alter table语句将task_id列的属性设置为auto_increment,如下所示:
 
alter table tasks
change column task_id task_id int(11) not null auto_increment;
 
可以通过在tasks表中插入一些行数据来验证更改。
 
使用MySQL ALTER TABLE语句将新的列添加到表中  #添加列
由于新的业务需求,需要添加一个名为complete的新列,以便在任务表中存储每个任务的完成百分比。 在这种情况下,您可以使用ALTER TABLE将新列添加到tasks表中,如下所示:
 
alter table tasks
add column complete decimal(2,1) null
after description;
 
使用MySQL ALTER TABLE从表中删除列
假设您不想将任务的描述存储在tasks表中了,并且必须将其删除。 以下语句允许您删除tasks表的description列:
 
ALTER TABLE tasks
DROP COLUMN description;
 
使用mysql alter table语句重命名表

 
可以使用alter table语句重命名表。请注意,在重命名表之前,应该认真考虑以了解更改是否影响数据库和应用程序层,不要因为重命名表之后,应用程序因未找到数据库表而出错。
以下语句将tasks表重命名为work_items表:
 
alter table tasks
rename to work_items;
 

以上是关于mysql 更改表结构的主要内容,如果未能解决你的问题,请参考以下文章

9)-MySQL修改表结构

mysql更改表结构:添加删除修改字段调整字段顺序

github在线更改mysql表结构工具gh-ost

[linux][mysql] 命令更改表结构:添加删除修改字段调整字段顺序

MYSQL分库分表和不停机更改表结构

pt-online-schema-change 在线更改MySQL表结构