mysql中如何改变字段或者列的顺序

 

创建了一个这样的数据表,想把id放到第一列,因为是主键,并且是自增的:

mysql> select * from student
    -> ;
+-------+-------+-------+----+
| class | name  | score | id |
+-------+-------+-------+----+
|     1 | user1 |   100 |  1 |
|     1 | user  |    45 |  2 |
|     1 | user1 |    80 |  3 |
|     1 | user  |    62 |  4 |
|     1 | user1 |   100 |  5 |
|     2 | user  |   108 |  6 |
|     2 | user1 |    90 |  7 |
|     2 | user  |    24 |  8 |
+-------+-------+-------+----+
8 rows in set (0.00 sec)

 

原来的顺序如上所示,怎么把id放在在前面,并且数据不动,属性不变呢?

废话不多说,直接上句子:

 

mysql> alter table student modify id int(10) unsigned auto_increment first;
Query OK, 8 rows affected (0.02 sec)
Records: 8  Duplicates: 0  Warnings: 0

mysql> desc student;
+-------+------------------+------+-----+---------+----------------+
| Field | Type             | Null | Key | Default | Extra          |
+-------+------------------+------+-----+---------+----------------+
| id    | int(10) unsigned | NO   | PRI | NULL    | auto_increment |
| score | int(10)          | YES  |     | NULL    |                |
| class | int(10)          | NO   |     | NULL    |                |
| name  | varchar(10)      | NO   |     | NULL    |                |
+-------+------------------+------+-----+---------+----------------+
4 rows in set (0.00 sec)

mysql> select * from student;
+----+-------+-------+-------+
| id | score | class | name  |
+----+-------+-------+-------+
|  1 |   100 |     1 | user1 |
|  2 |    45 |     1 | user  |
|  3 |    80 |     1 | user1 |
|  4 |    62 |     1 | user  |
|  5 |   100 |     1 | user1 |
|  6 |   108 |     2 | user  |
|  7 |    90 |     2 | user1 |
|  8 |    24 |     2 | user  |
+----+-------+-------+-------+
8 rows in set (0.00 sec)


这是放到第一位,如果要把name放到id之后呢?这样写就可以了(first 换成 after即可):

 

 

mysql> alter table student modify name varchar(10) after id;
Query OK, 8 rows affected (0.03 sec)
Records: 8  Duplicates: 0  Warnings: 0

mysql> select * from student;
+----+-------+-------+-------+
| id | name  | score | class |
+----+-------+-------+-------+
|  1 | user1 |   100 |     1 |
|  2 | user  |    45 |     1 |
|  3 | user1 |    80 |     1 |
|  4 | user  |    62 |     1 |
|  5 | user1 |   100 |     1 |
|  6 | user  |   108 |     2 |
|  7 | user1 |    90 |     2 |
|  8 | user  |    24 |     2 |
+----+-------+-------+-------+
8 rows in set (0.00 sec)


完美解决问题!

添加一列:

ALTER TABLE `ocs_reqs` ADD `sw_atom_ids` VARCHAR(255) NOT NULL AFTER `create_time`;

 

要修改MySQL数据库表字段顺序,可以使用ALTER TABLE语句。有两种情况可以修改字段顺序:新增字段到指定位置和修改已存在字段的位置。 要新增字段到指定位置,可以使用以下语法: ``` ALTER TABLE 表名 ADD 名 数据类型 后面字段名; ``` 例如,要在表app字段name添加到字段app_id后面,可以使用以下语句: ``` ALTER TABLE app ADD `name` VARCHAR(64) DEFAULT '' COMMENT '应用名称' AFTER `app_id`; ``` 要修改已存在字段的位置,可以使用以下语法: ``` ALTER TABLE 表名 CHANGE 名 数据类型 后面字段名; ``` 例如,要将表app字段title移动到字段name后面,可以使用以下语句: ``` ALTER TABLE app CHANGE `title` VARCHAR(64) DEFAULT '' COMMENT '名称' AFTER `name`; ``` 以上是两个示例,分别展示了新增字段和修改字段位置的语法。根据具体需求,你可以根据表名、字段名和后面字段名来修改字段顺序。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [mysql修改字段顺序](https://blog.csdn.net/weixin_38230961/article/details/86699012)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [mysql如何改变字段顺序](https://blog.csdn.net/stwood007/article/details/119990824)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [个人网站源码包含主页面,内容,文章,分页,使用mysql数据库,tomcat,前台代码是响应式](https://download.csdn.net/download/u012134073/88281982)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

SHUIPING_YANG

你的鼓励是我创作的最大动力。

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值