使用位置关键字重新排列mysql中的列,例如`First`,`Second`等

时间:2013-10-04 07:03:55

标签: mysql sql

编辑3 :我正在关注Head First SQL,据说我们可以使用FirstSecond等关键字。我已经被@StanMcgeek澄清了那个人只能使用FirstLastAfter


在读者对投票表示友好之前,我想提一下

  1. 我知道专栏重新安排通常只是一个美学问题。
  2. 我这样做只是为了学习目的

话虽这么说,这就是我想要做的事情:


hooptie是一个包含一些值的表,我想将其重命名为car_table并为其添加更多列。以下是重命名的hooptie,以及我尝试添加和重新排列几列的顺序。输出为-tee'到文本文件中。文字比截图更容易发布:)

--------------
select * from car_table
--------------

+--------+------+----------+----------+-----------+
| color  | year | make     | mo       | howmuch   |
+--------+------+----------+----------+-----------+
| silver | 1998 | Porsche  | Boxter   | 17992.539 |
| NULL   | 2000 | Jaguar   | XJ       | 15995.000 |
| red    | 2002 | Cadillac | Escalade | 40215.898 |
+--------+------+----------+----------+-----------+

--------------
alter table car_table
add column car_id int not null auto_increment first,
add column VIN varchar(16) second,
modify make varchar(20) third,
change mo model varchar(20) fourth,
modify color varchar(20) fifth,
modify year varchar(4) sixth,
change howmuch price decimal(7,2) last
--------------

完成上述更改后,我再做一次select * from car_table,但表格保持不变。我想随机说firstsecondthird等并没有真正削减它。谁能解释一下这里发生了什么?

我收到的

Edit1:错误消息说:

ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'second,

我不太喜欢mysql的错误消息..它们对我来说似乎有点模糊。

编辑2:我使用了After这样的关键字,我知道它有效。我想了解firstsecond等密钥的工作原理。

p.s :我正在关注Head-First-SQL一书,数据也来自那里。

1 个答案:

答案 0 :(得分:2)

尝试这样的事情:

ALTER TABLE 
    table_name
MODIFY COLUMN 
    column_to_move data_type
AFTER 
    other_column_name