【问题标题】:error message when inserting into table from another table从另一个表插入表时出现错误消息
【发布时间】:2017-04-22 08:26:48
【问题描述】:

我正在尝试像这样从product2 表中插入值到product 表中。

INSERT INTO product  
     SELECT * 
       FROM product2 
      WHERE product_code = 8002-25768;

但它显示以下消息。

错误 1136 (21S01):列计数与第 1 行的值计数不匹配

请帮帮我

谢谢

【问题讨论】:

  • 欢迎来到 SO。还请在您的问题中添加标签“sql”。

标签: mysql sql


【解决方案1】:

检查表是否具有相同的结构(相同索引的列的列数和类型相同)

【讨论】:

    【解决方案2】:

    这意味着product 的列数与product2 相比不同;所以product2备用 列或product未分配 列。我建议将查询重写为

    INSERT INTO product(p1, ..., pN)  
         SELECT column1, -- this will be written into p1
                ...
                columnN  -- this will be written into pN
           FROM product2 
             -- do you really want subtraction: 8002-25768 = -17766??? Probably '8002-25768'
          WHERE product_code = '8002-25768'; 
    

    请注意每个 pK 目标列对应于columnK 源列。

    【讨论】:

    • 你说得对,先生,它是'8002-25768'而不是减法。
    猜你喜欢
    • 2019-08-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-03
    • 1970-01-01
    • 1970-01-01
    • 2023-03-18
    • 2017-08-01
    相关资源
    最近更新 更多