MySQL 修改表中字段(列)的属性

获取服务器的状态信息:

mysql> status
--------------
mysql  Ver 14.14 Distrib 5.7.17, for Win64 (x86_64)
Server version:         5.7.17-log MySQL Community Server (GPL)
--------------

表的定义信息:

mysql> desc t_flower;
+------------+-------------+------+-----+---------+----------------+
| Field      | Type        | Null | Key | Default | Extra          |
+------------+-------------+------+-----+---------+----------------+
| id         | int(10)     | NO   | PRI | NULL    | auto_increment |
| name       | varchar(30) | NO   |     | NULL    |                |
| price      | float       | NO   |     | NULL    |                |
| production | varchar(30) | NO   |     | NULL    |                |
+------------+-------------+------+-----+---------+----------------+
4 rows in set (0.00 sec)

mysql> show create table t_flower \G
*************************** 1. row ***************************
       Table: t_flower
Create Table: CREATE TABLE `t_flower` (
  `id` int(10) NOT NULL AUTO_INCREMENT COMMENT '编号',
  `name` varchar(30) NOT NULL COMMENT '花名',
  `price` float NOT NULL COMMENT '价格',
  `production` varchar(30) NOT NULL COMMENT '原产地',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
1 row in set (0.00 sec)

修改表中字段,将 price 字段的类型从 float 修改为 decimal:
关于 DECIMAL 类型:https://dev.mysql.com/doc/refman/8.0/en/fixed-point-types.html
注:语法“ALTER TABLE 表名 CHANGE COLUMN 原字段名称 新字段名称 类型 约束;”。

mysql> alter table t_flower change column price price decimal(5,2) not null comment '价格';
Query OK, 0 rows affected (0.52 sec)
Records: 0  Duplicates: 0  Warnings: 0

查看修改之后的结果:

mysql> desc t_flower;
+------------+--------------+------+-----+---------+----------------+
| Field      | Type         | Null | Key | Default | Extra          |
+------------+--------------+------+-----+---------+----------------+
| id         | int(10)      | NO   | PRI | NULL    | auto_increment |
| name       | varchar(30)  | NO   |     | NULL    |                |
| price      | decimal(5,2) | NO   |     | NULL    |                |
| production | varchar(30)  | NO   |     | NULL    |                |
+------------+--------------+------+-----+---------+----------------+
4 rows in set (0.00 sec)

mysql> show create table t_flower \G
*************************** 1. row ***************************
       Table: t_flower
Create Table: CREATE TABLE `t_flower` (
  `id` int(10) NOT NULL AUTO_INCREMENT COMMENT '编号',
  `name` varchar(30) NOT NULL COMMENT '花名',
  `price` decimal(5,2) NOT NULL COMMENT '价格',
  `production` varchar(30) NOT NULL COMMENT '原产地',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
1 row in set (0.00 sec)
发布了36 篇原创文章 · 获赞 0 · 访问量 1882

猜你喜欢

转载自blog.csdn.net/qq_29761395/article/details/103599819
今日推荐