C
在mysql中,如何改变列声明.
修改表 - 修改列名
使用 CHANGE COLUMN 来修改列的名字,还必须 设置 列的数据类型
mysql> desc test_tab
-> //
+-------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| id | int(11) | NO | PRI | 0 | |
| name | varchar(10) | YES | | NULL | |
| age | int(11) | YES | | NULL | |
| val | varchar(10) | YES | | NULL | |
+-------+-------------+------+-----+---------+-------+
4 rows in set (0.00 sec)
mysql> ALTER TABLE test_tab
-> CHANGE COLUMN val val2 VARCHAR(10); //
Query OK, 0 rows affected (0.13 sec)
Records: 0 Duplicates: 0 Warnings: 0
mysql> desc test_tab
-> //
+-------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| id | int(11) | NO | PRI | 0 | |
| name | varchar(10) | YES | | NULL | |
| age | int(11) | YES | | NULL | |
| val2 | varchar(10) | YES | | NULL | |
+-------+-------------+------+-----+---------+-------+
4 rows in set (0.02 sec)
修改表 - 修改列的数据类型
使用 CHANGE COLUMN 来修改列的数据类型,还必须 设置 列名。
使用 MODIFY COLUMN
不用输入2次列名。
mysql> ALTER TABLE test_tab
-> CHANGE COLUMN age age TINYINT;
-> //
Query OK, 0 rows affected (0.16 sec)
Records: 0 Duplicates: 0 Warnings: 0
mysql> ALTER TABLE test_tab
-> MODIFY COLUMN age BIGINT NOT NULL;
-> //
Query OK, 0 rows affected (0.14 sec)
Records: 0 Duplicates: 0 Warnings: 0
修改表 - 修改列的默认值
通过MODIFY COLUMN来处理
mysql> ALTER TABLE test_tab
-> MODIFY COLUMN sex VARCHAR(2) DEFAULT ‘男‘;
Query OK, 0 rows affected (0.06 sec)
Records: 0 Duplicates: 0 Warnings: 0