代码之家  ›  专栏  ›  技术社区  ›  sunleo

插入现有记录时子查询有什么问题

  •  1
  • sunleo  · 技术社区  · 12 年前

    例外情况:

    当 EXISTS没有引入子查询。

    我正试图使用已插入的一行插入一行 记录。请帮我解决这个问题。

    insert into RDT_ATTACHMENTS  values
    ((select  MAX(id) from RDT_ATTACHMENTS),1363,(select fname,fpath,fsize,description,refentity,uploadby,uploadon,
          originalfname,LATEST   from RDT_ATTACHMENTS where id = 68))
    
    2 回复  |  直到 12 年前
        1
  •  2
  •   Oleksandr Fedorenko    12 年前

    您需要删除VALUES关键字

    INSERT INTO RDT_ATTACHMENTS
    SELECT (SELECT MAX(id) FROM RDT_ATTACHMENTS), 
            1363,
            fname,
            fpath,
            fsize,
            description,
            refentity,
            uploadby,
            uploadon,
            originalfname,
            LATEST   
    FROM RDT_ATTACHMENTS 
    WHERE id = 68
    
        2
  •  2
  •   TechDo    12 年前

    请尝试此查询:

    insert into RDT_ATTACHMENTS
    select  
        MAX(id) over(), -- (SELECT MAX(id) FROM RDT_ATTACHMENTS) to get the max(id) of table
        1363, 
        fname,
        fpath,
        fsize,
        description,
        refentity,
        uploadby,
        uploadon,
        originalfname,
        LATEST   
    from RDT_ATTACHMENTS
    where id = 68
    

    提供的表格 RDT_ATTACHMENTS 在select中按相同顺序具有相同数量的列。