:: DEVELOPER ZONE
First, consider whether you really need to change the column order
in a table. The whole point of SQL is to abstract the application
from the data storage format. You should always specify the order in
which you wish to retrieve your data. The first of the following
statements returns columns in the order
col_name1,
col_name2,
col_name3, whereas the second returns
them in the order col_name1,
col_name3,
col_name2:
mysql> SELECTcol_name1,col_name2,col_name3FROMtbl_name; mysql> SELECTcol_name1,col_name3,col_name2FROMtbl_name;
If you decide to change the order of table columns anyway, you can do so as follows:
Create a new table with the columns in the new order.
Execute this statement:
mysql> INSERT INTO new_table
-> SELECT columns-in-new-order FROM old_table;
Drop or rename old_table.
Rename the new table to the original name:
mysql> ALTER TABLE new_table RENAME old_table;
SELECT * is quite suitable for testing queries.
However, in an application, you should never
rely on using SELECT * and retrieving the columns
based on their position. The order and position in which columns are
returned does not remain the same if you add, move, or delete
columns. A simple change to your table structure could cause your
application to fail.
© 1995-2005 MySQL AB. All rights reserved.

User Comments
Warning: query failed: Unknown column 'user.firstname' in 'field list' in /data0/sites/live/web-main/lib/mysql-cxn.php on line 69
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /data0/sites/live/web-main/lib/docbook.php on line 245
Add your own comment.