簡體   English   中英

MySQL Alter Table錯誤消息

[英]Mysql alter table error message

我試圖更改MySQL表以將列添加到現有列的末尾。 但是由於某些原因,MySQL不喜歡我正在運行的查詢。

這是我下面的查詢。

alter table hdds add 
hdd1 VARCHAR(100), 
hdd2 VARCHAR(100), 
hdd3 VARCHAR(100), 
hdd4 VARCHAR(100), 
hdd5 VARCHAR(50), 
hdd6 VARCHAR(100), 
hdd6 VARCHAR(100), 
hdd7 VARCHAR(100), 
hdd8 VARCHAR(100), 
hdd9 VARCHAR(100), 
hdd10 VARCHAR(100), 
hdd11 VARCHAR(100), 
hdd12 VARCHAR(100), 
hdd13 VARCHAR(100), 
hdd14 VARCHAR(100), 
hdd15 VARCHAR(100), 
hdd16 VARCHAR(100), 
hdd17 VARCHAR(100), 
hdd18 VARCHAR(100), 
hdd19 VARCHAR(100),
after comments;

我收到以下錯誤消息。

#1064 - 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 'hdd2 VARCHAR(100), 
    hdd3 VARCHAR(100), 
    hdd4 VARCHAR(100), 
    hdd5 ' at line 3 

不知道我哪里出了問題。

奇跡般有效:

create table t111
(   id int auto_increment primary key,
    comments varchar(1000) not null
);

alter table t111
add column hdd19 VARCHAR(100) after comments, 
add column hdd18 VARCHAR(100) after comments, 
add column hdd17 VARCHAR(100) after comments, 
add column hdd16 VARCHAR(100) after comments, 
add column hdd15 VARCHAR(50) after comments, 
add column hdd14 VARCHAR(100) after comments, 
add column hdd13 VARCHAR(100) after comments, 
add column hdd12 VARCHAR(100) after comments, 
add column hdd11 VARCHAR(100) after comments, 
add column hdd10 VARCHAR(100) after comments, 
add column hdd9 VARCHAR(100) after comments, 
add column hdd8 VARCHAR(100) after comments, 
add column hdd7 VARCHAR(100) after comments, 
add column hdd6 VARCHAR(100) after comments, 
add column hdd5 VARCHAR(100) after comments, 
add column hdd4 VARCHAR(100) after comments, 
add column hdd3 VARCHAR(100) after comments, 
add column hdd2 VARCHAR(100) after comments, 
add column hdd1 VARCHAR(100) after comments;

describe t111;

另外,您輸入錯誤,嘗試兩次添加hdd6。

編輯:

我將列的順序從19反轉為1,因此它們在comments冒泡之后都全部對齊(如describe t111;

正如我所看到的,您有2個選擇可以在1到19的comments后直觀地排列順序。

1.您可以按照我的方式進行操作,先在評論后添加19個,然后在評論后添加18個(將其下方的19個向下移動),然后在評論后將18和19分別向下移動17個...在評論從2個減少到19個之后,再進行1個操作。

要么

2.您可以從1到19進行操作,並且必須在“注釋”部分中單獨修改after comments塊,如下所示:創建表t111(id int auto_increment主鍵,注釋varchar(1000)不為null) ;

alter table t11
add column hdd1 VARCHAR(100) after comments, 
add column hdd2 VARCHAR(100) after hdd1, 
add column hdd3 VARCHAR(100) after hdd2,
...
add column hdd19 VARCHAR(100) after hdd18;

我選擇了選擇1. ,也許不是最好的和最快的選擇,但它滿足了我對泡沫下降的好奇心的渴望。

所有這些都取決於任何人都在乎他們的外表,但是在您的情況下卻應該如此,因為您有很多人並且容易出錯。

不,您不能在單個ALTER語句中添加多個列。 這是錯誤的,因為它與CREATE語句不同,因此您將收到錯誤。 您將不得不將其單獨ALTER語句,例如

alter table hdds add hdd1 VARCHAR(100) after comments;
alter table hdds add hdd2 VARCHAR(100) after comments;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM