![](/img/trans.png)
[英]cursor in mysql returns error Error Code: 1136. Column count doesn't match value count at row 1
[英]MySQL INSERT INTO statement generating “Error Code: 1136. Column count doesn't match value count at row”
我正在嘗試從舊表創建一個新表,以便刪除一些重復項並實現復合主鍵。 我使用 LIKE 從舊表創建了新表,因此列應該相同。
為什么這不起作用?
INSERT INTO PricesNEWtest (Global_MarketCap,pkey)
VALUES ((SELECT max(Global_MarketCap), pkey
FROM Prices GROUP BY pkey));
產生的錯誤:
錯誤代碼:1136。列計數與第 1 行的值計數不匹配
上面的例子只有兩行,所以更清晰,但實際上表包含 15 列,這是完整的 INSERT INTO 語句,它生成相同的錯誤:
INSERT INTO PricesNEWtest (Global_MarketCap,Global_Volume24h,BTC_Dominance,Rank,Name,
Symbol,ChangePerc24h,Price,BTC_Price,MarketCap,Volume24h,DateTime,Date,pkDummy,pkey)
VALUES ((SELECT max(Global_MarketCap), max(Global_Volume24h), max(BTC_Dominance), max(Rank), max(Name),
max(Symbol), max(ChangePerc24h), max(Price), max(BTC_Price), max(MarketCap), max(Volume24h),
max(DateTime), max(Date), max(pkDummy), pkey
FROM Prices GROUP BY pkey));
我為 VALUES 添加了雙括號,因為沒有它我會得到錯誤代碼 1064,但我不完全理解為什么需要雙括號。 我按 pkey 字段分組(目前有一些我想刪除的重復項),這意味着我需要總結其余的字段。 正如您從屏幕截圖中看到的那樣,SELECT 語句本身運行良好。
有沒有另一種方法可以做到這一點,我可以嘗試? 或者有沒有更簡單的方法可以直接從原始表中刪除重復項?
我正在使用 MySQL 5.7.14
任何幫助,將不勝感激!
您只是使用SELECT
語句INSERT
語法錯誤:
INSERT INTO PricesNEWtest (Global_MarketCap, pkey)
SELECT max(Global_MarketCap), pkey
FROM Prices
GROUP BY pkey
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.