停止重复行插入SQL表

时间:2018-01-17 11:11:10

标签: java sql-server

我有一个JAVA RFC程序,它从SAP表中获取数据并将这些数据插入到SQL表中。每次JAVA程序运行数据都会插入到SQL表中。因此可能会出现重复数据。我的问题是如何从插入中省略那些重复数据。我无法找出正确的查询。我没有使用两个表来比较。我只有一个表和来自SAP端的新数据,我使用循环来插入数据。我不想删除已经存在的数据。

SQL表结构......

ITPITP   ITPNAM             ITPSCT    ITPACTYN
2000348  175/70 R13 CT      FG0009    Y
2000355  2ND-175/70 R 13    FG0009    Y
2000364  2ND-185/70 R 14    FG0009    Y
2000365  3RD-185/70 R 14    FG0009    Y
2000370  2ND-185/70 R 14    FG0009    Y

主键是 ITPITP

这是我插入值的方式。

    StringBuilder sbQuery = new StringBuilder(
    "INSERT INTO ITPMAST(ITPITP,ITPNAM,ITPSCT,ITPACTYN) NOT IN 
(SELECT ITPITP FROM ITPMAST) VALUES");

                // --- create query ---------------------------------
                for (int i = 0; i < table.getNumRows(); i++) {
                    // table.setRow(i);
                    sbQuery.append("(?,?,?,?),");
                }

                sbQuery.deleteCharAt(sbQuery.length() - 1);
                sbQuery.append(";");
                qex.setUpdateQuery(sbQuery.toString());// *****************
                elements.clear();

                String strPattern = "^0+(?!$)";

                for (int i = 0; i < table.getNumRows(); i++) {
                    table.setRow(i);

                    elements.add(table.getString("MATNR").replaceAll(strPattern, ""));
                    elements.add(table.getString("MAKTX"));
                    elements.add(table.getString("MATKL"));
                    elements.add("Y");

                }

0 个答案:

没有答案