创建了一个这样的数据表,想把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)
完美解决问题!
来自
http://blog.csdn.net/zhezhebie/article/details/54912411