zoukankan      html  css  js  c++  java
  • 修改数据表

    1、修改列定义

     ALTER TABLE tbl_name MODIFY [COLUMN] col_name column_definition [FIRST|AFTER col_name]

    把id修改到第一行

    mysql> ALTER TABLE users3 MODIFY id SMALLINT UNSIGNED NOT NULL FIRST;
    Query OK, 0 rows affected (0.36 sec)
    Records: 0 Duplicates: 0 Warnings: 0

    mysql> SHOW COLUMNS FROM users3;
    +------- - --+---------------------     -+----    --+---  --+---------+-------+
    | Field        | Type                        | Null     | Key    | Default | Extra |
    +------- -- -+----------------------    +-----     -+---  --+---------+-------+
    | id            | smallint(5) unsigned | NO       |          | NULL     |        |
    | username | varchar(10)              | NO       |          | NULL     |        |
    | pid          | smallint(5) unsigned | YES      |          | NULL     |        |
    | age         | tinyint(3) unsigned    | NO       |         | NULL      |        |
    +------ -- --+----------------------+------+-----+---------+-------+
    4 rows in set (0.01 sec)

    修改列定义时有可能会造成数据丢失,例id类型由smallint改为tinyint.

    2、修改列名称(CHANGE [COLUMN]既可以修改列定义,也可以修改列名称

     ALTER TABLE tbl_name CHANGE [COLUMN] old_col_nmae new_col_name column_definition  [FIRST|AFTER col_name]

    mysql> ALTER TABLE users3 CHANGE pid p_id TINYINT UNSIGNED NOT NULL;
    Query OK, 0 rows affected (0.23 sec)
    Records: 0 Duplicates: 0 Warnings: 0

    mysql> SHOW COLUMNS FROM users3;
    +------- - --+---------------------     -+----    --+---  --+---------+-------+
    | Field        | Type                        | Null     | Key    | Default | Extra |
    +------- -- -+----------------------    +-----     -+---  --+---------+-------+
    | id            | smallint(5) unsigned | NO       |          | NULL     |        |
    | username | varchar(10)              | NO       |          | NULL     |        |
    | pid          |tinyint(5) unsigned     |NO       |          | NULL     |        |
    | age         | tinyint(3) unsigned    | NO       |         | NULL      |        |
    +------ -- --+----------------------+------+-----+---------+-------+
    4 rows in set (0.01 sec)

    3、修改数据表的名称

    第一种方法:ALTER TABLE tbl_name RENAME [TO|AS] new_tbl_name

    第二种方法:RENAME TABLE tbl_name TO new_tbl_name [tbl2_name TO new_tbl2_name]

    mysql> ALTER TABLE users3 RENAME USERS4;
    Query OK, 0 rows affected (0.06 sec)

    mysql> SHOW TABLES;
    +----------------+
    | Tables_in_test |
    +----------------+
    | province |
    | users     |
    | users1  |
    | users2  |
    | users4 |
    +----------------+
    5 rows in set (0.00 sec)

    mysql> RENAME TABLE users4 TO users3;
    Query OK, 0 rows affected (0.11 sec)

    mysql> SHOW TABLES;
    +----------------+
    | Tables_in_test |
    +----------------+
    | province        |
    | users            |
    | users1          |
    | users2          |
    | users3         |
    +----------------+

    建议尽量少使用数据列的更名和数据表的更名

  • 相关阅读:
    写给所有的IT民工们
    如何不重启系统加载.SYS文件
    六十八个经典故事
    利用C#重启远程计算机
    无为无不为
    男人心里到底藏着哪些秘密?
    Microsoft好员工的十个标准
    javascript版的日期输入控件
    书写NDIS过滤钩子驱动实现ip包过滤
    男人25岁前的忠告#必阅
  • 原文地址:https://www.cnblogs.com/toudoubao/p/6606339.html
Copyright © 2011-2022 走看看