MySQL-使用准备好的语句复制同一表中的一行并包含静态值会引发错误

问题描述 投票:0回答:1

我正在尝试使用准备好的语句将同一行中的一行复制到新行(INSERT),并包括一些静态值。但是,出现以下错误:

SQLException in copyProgram: java.sql.SQLException: Operand should contain 1 column(s)

我的输入是:

prId: 4 accountID: 50 newFromDate: 2020-04-27 newToDate: 2020-04-28

我的代码是:

    String insertQry = ("INSERT INTO at_program "
            + "(acc_id, pr_name, pr_start_date, pr_start_time, pr_end_date, pr_end_time, "
            + "pr_cost_pp, pr_woodbeads, pr_special, pr_joeys, pr_cubs, "
            + "pr_scouts, pr_venturers, pr_rovers, pr_leaders, pr_family, "
            + "pr_swimming, pr_pioneering, pr_archery, pr_canoe, pr_bushwalking, "
            + "pr_4wd, pr_abseiling, pr_snorkelling, pr_boating, "
            + "pr_rock_climbing, pr_caving, pr_branch_instructions, pr_policies_information, "
            + "pr_whs, pr_other, pr_notes) "
            + " (SELECT (?, pr_name, ?, pr_start_time, ?, pr_end_time, "
                    + "pr_cost_pp, pr_woodbeads, pr_special, pr_joeys, pr_cubs, "
                    + "pr_scouts, pr_venturers, pr_rovers, pr_leaders, pr_family, "
                    + "pr_swimming, pr_pioneering, pr_archery, pr_canoe, pr_bushwalking, "
                    + "pr_4wd, pr_abseiling, pr_snorkelling, pr_boating, "
                    + "pr_rock_climbing, pr_caving, pr_branch_instructions, pr_policies_information, "
                    + "pr_whs, pr_other, pr_notes) "
            + " FROM at_program "
            + " WHERE pr_id = ?);"); 

 ps = c.prepareStatement(insertQry, Statement.RETURN_GENERATED_KEYS);
            // Create a statement and execute the query on it               
            ps.setString(1, accountID);
            ps.setString(2, fromDate);
            ps.setString(3, toDate);
            ps.setString(4, prID);

            ps.executeUpdate();
mysql prepared-statement
1个回答
0
投票

您在插入中有33列,而在选择中只有32列。

您是一个短裤,这给您带来错误

© www.soinside.com 2019 - 2024. All rights reserved.