簡體   English   中英

如何更改臨時表?

[英]How can I alter a temp table?

我需要創建一個臨時表,而不是向其中添加一個新的int NOT NULL AUTO_INCREMENT字段,以便可以將新字段用作行號。 我的查詢出了什么問題?

SELECT post, newid FROM ((SELECT post`test_posts`) temp
ALTER TABLE temp ADD COLUMN newid int NOT NULL AUTO_INCREMENT)

編輯:

SELECT post, newid FROM ((SELECT post, newid as int NOT NULL AUTO_INCREMENT FROM `test_posts`) temp

以太這沒用。

並不是說這不可能,但是我還沒有看到任何SQL版本允許您從SELECT內修改表。 拉出alter table並使其成為單獨的語句。 修復所有語法問題后,您應該會很好。

另外,看起來您實際上沒有要更改的“臨時表”。 而是,您正在尋找一種解決方案,該解決方案可讓您向“ SELECT post ...”查詢的結果中添加一個任意ID。 我不知道您使用的是哪個引擎,但是序列計數器,rowid,rownum或其他類似功能會更好地滿足您的需求。

如果您需要一個行號並且不想實際創建一個臨時表,則可以使用用戶變量來實現。

SET @my_row_num =0;
SELECT @my_row_num := @my_row_num+1 as row_number, post, newid FROM ((SELECT post`test_posts`) temp;

暫無
暫無

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

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