欢迎各位兄弟 发布技术文章

这里的技术是共享的

You are here

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

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

原创 2017年02月07日 17:12:20

 

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

[sql] view plain copy
 
  1. mysql> select * from student  
  2.     -> ;  
  3. +-------+-------+-------+----+  
  4. | class | name  | score | id |  
  5. +-------+-------+-------+----+  
  6. |     1 | user1 |   100 |  1 |  
  7. |     1 | user  |    45 |  2 |  
  8. |     1 | user1 |    80 |  3 |  
  9. |     1 | user  |    62 |  4 |  
  10. |     1 | user1 |   100 |  5 |  
  11. |     2 | user  |   108 |  6 |  
  12. |     2 | user1 |    90 |  7 |  
  13. |     2 | user  |    24 |  8 |  
  14. +-------+-------+-------+----+  
  15. rows in set (0.00 sec)  

 

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

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

 

[sql] view plain copy
 
  1. mysql> alter table student modify id int(10) unsigned auto_increment first;  
  2. Query OK, 8 rows affected (0.02 sec)  
  3. Records: 8  Duplicates: 0  Warnings: 0  
  4.   
  5. mysql> desc student;  
  6. +-------+------------------+------+-----+---------+----------------+  
  7. | Field | Type             | Null | Key | Default | Extra          |  
  8. +-------+------------------+------+-----+---------+----------------+  
  9. | id    | int(10) unsigned | NO   | PRI | NULL    | auto_increment |  
  10. | score | int(10)          | YES  |     | NULL    |                |  
  11. | class | int(10)          | NO   |     | NULL    |                |  
  12. name  | varchar(10)      | NO   |     | NULL    |                |  
  13. +-------+------------------+------+-----+---------+----------------+  
  14. rows in set (0.00 sec)  
  15.   
  16. mysql> select * from student;  
  17. +----+-------+-------+-------+  
  18. | id | score | class | name  |  
  19. +----+-------+-------+-------+  
  20. |  1 |   100 |     1 | user1 |  
  21. |  2 |    45 |     1 | user  |  
  22. |  3 |    80 |     1 | user1 |  
  23. |  4 |    62 |     1 | user  |  
  24. |  5 |   100 |     1 | user1 |  
  25. |  6 |   108 |     2 | user  |  
  26. |  7 |    90 |     2 | user1 |  
  27. |  8 |    24 |     2 | user  |  
  28. +----+-------+-------+-------+  
  29. rows in set (0.00 sec)  

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

 

 

[sql] view plain copy
 
  1. mysql> alter table student modify name varchar(10) after id;  
  2. Query OK, 8 rows affected (0.03 sec)  
  3. Records: 8  Duplicates: 0  Warnings: 0  
  4.   
  5. mysql> select * from student;  
  6. +----+-------+-------+-------+  
  7. | id | name  | score | class |  
  8. +----+-------+-------+-------+  
  9. |  1 | user1 |   100 |     1 |  
  10. |  2 | user  |    45 |     1 |  
  11. |  3 | user1 |    80 |     1 |  
  12. |  4 | user  |    62 |     1 |  
  13. |  5 | user1 |   100 |     1 |  
  14. |  6 | user  |   108 |     2 |  
  15. |  7 | user1 |    90 |     2 |  
  16. |  8 | user  |    24 |     2 |  
  17. +----+-------+-------+-------+  
  18. rows in set (0.00 sec)  

完美解决问题!

来自 http://blog.csdn.net/zhezhebie/article/details/54912411

普通分类: