您的位置:首页 > 数据库 > MySQL

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

2017-02-07 17:12 435 查看
创建了一个这样的数据表,想把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)

完美解决问题!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: