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

来源:互联网 发布:win10配置php-5.6.22 编辑:程序博客网 时间:2024/05/16 12:48


创建了一个这样的数据表,想把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: 0mysql> 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: 0mysql> 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)

完美解决问题!

1 0