![](/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.