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)
完美解决问题!
-> ;
+-------+-------+-------+----+
| 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)
完美解决问题!
相关文章推荐
- mysql中触发器如何监听本身并且改变本身的字段?
- mysql 添加字段 删除字段 改变字段的顺序
- mysql group by分组,根据一个字段分组 ,又想得到另一个字段的最大或者最小。如何解决。
- Genero Studio如何改变界面字段输入顺序
- mysql 添加字段、删除字段、调整字段顺序
- 如何改变WINDOWS服务的启动顺序(Win2000)
- 如何改变输入法的顺序
- 当mysql中指定的socket路径改变时如何通过ODBC进行访问?
- 如何在DataGrid前加一个列让其id按顺序排列,而非绑定的id字段的乱七八糟的排序???
- mysql 添加字段、删除字段、调整字段顺序
- mysql组合索引与字段顺序
- 如何在MySQL&Oracle下创建自动递增字段
- 如何改变Windows 服务的启动顺序。
- 如何改变一个字段的缺省值?
- 【转】如何改变VC中控件间的TAB切换顺序
- 在Mysql和Oracle中如何删除字段中的重复数据
- [MySQL FAQ]系列 -- 如何为一个字段指定字符集
- mysql 调整字段顺序
- [转载]如何改变VC中控件间的TAB切换顺序
- mysql 添加字段、删除字段、调整字段顺序