zoukankan      html  css  js  c++  java
  • MySQL之 ALTER vs CHANGE vs MODIFY COLUMN

    1.ALTER COLUMN

    用于设置或者移除某一列的默认(缺省)值,

    1.1用法

      

    ALTER TABLE MyTable ALTER COLUMN foo SET DEFAULT 'bar';
    ALTER TABLE MyTable ALTER COLUMN foo DROP DEFAULT;
    

    1.2 举例

    mysql> desc pre_common_block;
    +----------------+-----------------------+------+-----+---------+----------------+
    | Field          | Type                  | Null | Key | Default | Extra          |
    +----------------+-----------------------+------+-----+---------+----------------+
    | bid            | mediumint(8) unsigned | NO   | PRI | NULL    | auto_increment |
    | blockclass     | varchar(255)          | NO   |     | 0       |                |
    | blocktype      | tinyint(1)            | NO   |     | 0       |                |
    | name           | varchar(255)          | NO   |     |         |                |
    | title          | text                  | NO   |     | NULL    |                |
    | classname      | varchar(255)          | NO   |     |         |                |
    | summary        | text                  | NO   |     | NULL    |                |
    | uid            | mediumint(8) unsigned | NO   |     | 0       |                |
    | username       | varchar(255)          | NO   |     |         |                |
    | styleid        | smallint(6) unsigned  | NO   |     | 0       |                |
    | blockstyle     | text                  | NO   |     | NULL    |                |
    | picwidth       | smallint(6) unsigned  | NO   |     | 0       |                |
    | picheight      | smallint(6) unsigned  | NO   |     | 0       |                |
    | target         | varchar(255)          | NO   |     |         |                |
    | dateformat     | varchar(255)          | NO   |     |         |                |
    | dateuformat    | tinyint(1)            | NO   |     | 0       |                |
    | script         | varchar(255)          | NO   |     |         |                |
    | param          | text                  | NO   |     | NULL    |                |
    | shownum        | smallint(6) unsigned  | NO   |     | 0       |                |
    | cachetime      | int(10)               | NO   |     | 0       |                |
    | cachetimerange | char(5)               | NO   |     |         |                |
    | punctualupdate | tinyint(1)            | NO   |     | 0       |                |
    | hidedisplay    | tinyint(1)            | NO   |     | 0       |                |
    | dateline       | int(10) unsigned      | NO   |     | 0       |                |
    | notinherited   | tinyint(1)            | NO   |     | 0       |                |
    | isblank        | tinyint(1)            | NO   |     | 0       |                |
    +----------------+-----------------------+------+-----+---------+----------------+
    26 rows in set (0.14 sec)
    
    mysql> ALTER TABLE pre_common_block  ALTER COLUMN  blocktype set  DEFAULT 5;
    Query OK, 0 rows affected (0.32 sec)
    Records: 0  Duplicates: 0  Warnings: 0
    
    mysql> desc pre_common_block;
    +----------------+-----------------------+------+-----+---------+----------------+
    | Field          | Type                  | Null | Key | Default | Extra          |
    +----------------+-----------------------+------+-----+---------+----------------+
    | bid            | mediumint(8) unsigned | NO   | PRI | NULL    | auto_increment |
    | blockclass     | varchar(255)          | NO   |     | 0       |                |
    | blocktype      | tinyint(1)            | NO   |     | 5       |                |
    | name           | varchar(255)          | NO   |     |         |                |
    | title          | text                  | NO   |     | NULL    |                |
    | classname      | varchar(255)          | NO   |     |         |                |
    | summary        | text                  | NO   |     | NULL    |                |
    | uid            | mediumint(8) unsigned | NO   |     | 0       |                |
    | username       | varchar(255)          | NO   |     |         |                |
    | styleid        | smallint(6) unsigned  | NO   |     | 0       |                |
    | blockstyle     | text                  | NO   |     | NULL    |                |
    | picwidth       | smallint(6) unsigned  | NO   |     | 0       |                |
    | picheight      | smallint(6) unsigned  | NO   |     | 0       |                |
    | target         | varchar(255)          | NO   |     |         |                |
    | dateformat     | varchar(255)          | NO   |     |         |                |
    | dateuformat    | tinyint(1)            | NO   |     | 0       |                |
    | script         | varchar(255)          | NO   |     |         |                |
    | param          | text                  | NO   |     | NULL    |                |
    | shownum        | smallint(6) unsigned  | NO   |     | 0       |                |
    | cachetime      | int(10)               | NO   |     | 0       |                |
    | cachetimerange | char(5)               | NO   |     |         |                |
    | punctualupdate | tinyint(1)            | NO   |     | 0       |                |
    | hidedisplay    | tinyint(1)            | NO   |     | 0       |                |
    | dateline       | int(10) unsigned      | NO   |     | 0       |                |
    | notinherited   | tinyint(1)            | NO   |     | 0       |                |
    | isblank        | tinyint(1)            | NO   |     | 0       |                |
    +----------------+-----------------------+------+-----+---------+----------------+
    26 rows in set (0.02 sec)
    

     

    2.ALTER COLUMN

    用于某一数据列的重命名、修改数据类型或者删除。

    2.1用法

    ALTER TABLE MyTable CHANGE COLUMN foo bar VARCHAR(32) NOT NULL FIRST;
    ALTER TABLE MyTable CHANGE COLUMN foo bar VARCHAR(32) NOT NULL AFTER baz;
    

      

    2.2 举例

    mysql> desc pre_common_block;
    +----------------+-----------------------+------+-----+---------+----------------+
    | Field          | Type                  | Null | Key | Default | Extra          |
    +----------------+-----------------------+------+-----+---------+----------------+
    | bid            | mediumint(8) unsigned | NO   | PRI | NULL    | auto_increment |
    | blockclass     | varchar(255)          | NO   |     | 0       |                |
    | blocktype      | tinyint(1)            | NO   |     | 5       |                |
    | name           | varchar(255)          | NO   |     |         |                |
    | title          | text                  | NO   |     | NULL    |                |
    | classname      | varchar(255)          | NO   |     |         |                |
    | summary        | text                  | NO   |     | NULL    |                |
    | uid            | mediumint(8) unsigned | NO   |     | 0       |                |
    | username       | varchar(255)          | NO   |     |         |                |
    | styleid        | smallint(6) unsigned  | NO   |     | 0       |                |
    | blockstyle     | text                  | NO   |     | NULL    |                |
    | picwidth       | smallint(6) unsigned  | NO   |     | 0       |                |
    | picheight      | smallint(6) unsigned  | NO   |     | 0       |                |
    | target         | varchar(255)          | NO   |     |         |                |
    | dateformat     | varchar(255)          | NO   |     |         |                |
    | dateuformat    | tinyint(1)            | NO   |     | 0       |                |
    | script         | varchar(255)          | NO   |     |         |                |
    | param          | text                  | NO   |     | NULL    |                |
    | shownum        | smallint(6) unsigned  | NO   |     | 0       |                |
    | cachetime      | int(10)               | NO   |     | 0       |                |
    | cachetimerange | char(5)               | NO   |     |         |                |
    | punctualupdate | tinyint(1)            | NO   |     | 0       |                |
    | hidedisplay    | tinyint(1)            | NO   |     | 0       |                |
    | dateline       | int(10) unsigned      | NO   |     | 0       |                |
    | notinherited   | tinyint(1)            | NO   |     | 0       |                |
    | isblank        | tinyint(1)            | NO   |     | 0       |                |
    +----------------+-----------------------+------+-----+---------+----------------+
    26 rows in set (0.02 sec)
    
    mysql> ALTER TABLE pre_common_block CHANGE COLUMN  blocktype  changetype tinyint(1)  NOT NULL
    Query OK, 2 rows affected (0.77 sec)
    Records: 2  Duplicates: 0  Warnings: 0
    
    mysql> desc pre_common_block;
    +----------------+-----------------------+------+-----+---------+----------------+
    | Field          | Type                  | Null | Key | Default | Extra          |
    +----------------+-----------------------+------+-----+---------+----------------+
    | changetype     | tinyint(1)            | NO   |     | NULL    |                |
    | bid            | mediumint(8) unsigned | NO   | PRI | NULL    | auto_increment |
    | blockclass     | varchar(255)          | NO   |     | 0       |                |
    | name           | varchar(255)          | NO   |     |         |                |
    | title          | text                  | NO   |     | NULL    |                |
    | classname      | varchar(255)          | NO   |     |         |                |
    | summary        | text                  | NO   |     | NULL    |                |
    | uid            | mediumint(8) unsigned | NO   |     | 0       |                |
    | username       | varchar(255)          | NO   |     |         |                |
    | styleid        | smallint(6) unsigned  | NO   |     | 0       |                |
    | blockstyle     | text                  | NO   |     | NULL    |                |
    | picwidth       | smallint(6) unsigned  | NO   |     | 0       |                |
    | picheight      | smallint(6) unsigned  | NO   |     | 0       |                |
    | target         | varchar(255)          | NO   |     |         |                |
    | dateformat     | varchar(255)          | NO   |     |         |                |
    | dateuformat    | tinyint(1)            | NO   |     | 0       |                |
    | script         | varchar(255)          | NO   |     |         |                |
    | param          | text                  | NO   |     | NULL    |                |
    | shownum        | smallint(6) unsigned  | NO   |     | 0       |                |
    | cachetime      | int(10)               | NO   |     | 0       |                |
    | cachetimerange | char(5)               | NO   |     |         |                |
    | punctualupdate | tinyint(1)            | NO   |     | 0       |                |
    | hidedisplay    | tinyint(1)            | NO   |     | 0       |                |
    | dateline       | int(10) unsigned      | NO   |     | 0       |                |
    | notinherited   | tinyint(1)            | NO   |     | 0       |                |
    | isblank        | tinyint(1)            | NO   |     | 0       |                |
    +----------------+-----------------------+------+-----+---------+----------------+
    26 rows in set (0.00 sec)
    

      

    3.MODIFY COLUMN

    除了重命名外能够做CHANGE COLUMN能做的一切工作。

    3.1用法

    ALTER TABLE MyTable MODIFY COLUMN foo VARCHAR(32) NOT NULL AFTER baz;
  • 相关阅读:
    介绍几个程序员常去的网站
    你这辈子,为什么富不起来?!
    Bug解决:mysql 创建表字段Double类型长度
    RedisTemplate5种数据结构操作
    StringRedisTemplate与RedisTemplate区别
    Redis客户端信息的存取
    Anaconda安装pygame
    springboot启动报错
    idea上传项目到github
    Docker安装报错
  • 原文地址:https://www.cnblogs.com/zhangminghui/p/4402918.html
Copyright © 2011-2022 走看看