[英]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.