2

编辑3:我在关注Head First SQL,据说我们可以使用诸如等关键字FirstSecond。@StanMcgeek 澄清说,我只能使用First,LastAfter


在读者对否决投票变得友好之前,我想提一下

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

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


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

--------------
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,但桌子保持不变。我想随便说firstsecond等等并third没有真正削减它。谁能解释这里发生了什么?

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错误消息..它们对我来说似乎有点模糊。

Edit2:我使用了类似的关键字After,我知道它有效。我想了解first, secondetc 键是如何工作的。

ps:我正在关注 Head-First-SQL 书,数据也是从那里获取的。

4

1 回答 1

2

尝试这样的事情:

ALTER TABLE 
    table_name
MODIFY COLUMN 
    column_to_move data_type
AFTER 
    other_column_name 
于 2013-10-04T07:11:30.733 回答