Java Ucanaccess Вставить данные в таблицу, игнорируя повторяющиеся записи (первичный ключ) - PullRequest
0 голосов
/ 11 марта 2020

Добрый день, люди, я пытаюсь вставить некоторые данные в таблицу доступа, но они не запускаются из-за нарушения первичного ключа

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.sql.Statement;

import net.ucanaccess.jdbc.UcanaccessSQLException;

public class teste {

    public static void main(String[] args) throws ClassNotFoundException, SQLException {
        // TODO Auto-generated method stub

        try
        {
            String Query = "INSERT INTO 005_DADOS_HISTORICOS ( DT_ARQUIVO, UF_LIC, CHASSI, NM_FILE, DT_EXEC_ROBO, TEMPO_DECORRIDO, RESULTADO_FINAL ) SELECT DT_ARQUIVO, UF_LIC, CHASSI, NM_FILE, DT_EXEC_ROBO, TEMPO_DECORRIDO, RTrim(LTrim(Replace(Replace([RESULTADO_ROBO],\"*\",\"\"),\"=\",\"\"))) FROM 003_DADOS_TRATATIVA;";
            baseDados.updateAccess("C://BOT_REENVIO_DETRAN//database.accdb", Query);
            System.out.println("Dados Inseridos");
        }       
        catch (Exception e) {
            System.out.println(e);
        }

    }

Ошибка:

net.ucanaccess.jdbc.UcanaccessSQLException: UCAExc:::4.0.4 integrity constraint violation: unique constraint or index violation; SYS_PK_10577 table: Z_005_DADOS_HISTORICOS

Как мне вставить эксклюзивные записи и просто игнорировать повторяющиеся записи?

Ответы [ 2 ]

0 голосов
/ 11 марта 2020

Класс UcanaccessSQLException расширяет класс java.sql.SQLException, который содержит причину и код поставщика и сообщение . Если вы хотите игнорировать попытки вставки повторяющейся строки в таблицу, то в вашем блоке catch проверьте сообщение . Если это нарушение ограничения целостности , просто игнорируйте. Если это не так, обращайтесь соответственно с вашими требованиями.

0 голосов
/ 11 марта 2020

Вы пытаетесь добавить существующую запись в базу данных, и это не может работать, поскольку столбец в вашей таблице является уникальным, что означает, что вы не можете добавить повторяющиеся записи.

Вы не можете игнорировать повторяющиеся записи. Поэтому вы должны изменить определение таблицы

, отметьте это уникально sql

...