У меня есть индекс с 4 столбцами, мне нужно вставить большую часть строк из выбранного запроса с дублированными строками, мне нужно сделать этот ключевой индекс, чтобы предотвратить вставку второй повторяющейся строки, просто вставьте одну из них как мне это сделать ?
@jarlh я сделал идентификатор первичным ключом, но все еще не работает
Какие СУБД вы используете?
Вам нужен не только индекс, но и ограничение базы данных.
Например, если в вашей таблице четыре столбца, как в:
create table my_table (
col1 int not null,
col2 int not null,
col3 int not null,
col4 int not null,
constraint unique_row unique (col1, col2, col3, col4)
);
Включенное ограничение предотвращает любую повторяющуюся строку, поскольку оно включает все столбцы таблицы.
В качестве побочного эффекта база данных создаст уникальный индекс для осуществлять этого ограничения. Но ключевым аспектом является ограничение.
Примечание: пример в PostgreSQL (вы не указали никакую базу данных), но должен работать с большинством баз данных.
такой же ответ Violation of UNIQUE KEY constraint 'UC_ATT'. Cannot insert duplicate key in object 'dbo.EmployeeAtt'.
мне нужно, чтобы запрос игнорировал дублирование и вставлял одно значение
Затем вы можете реализовать триггер предварительная вставка. С его помощью вы можете проверить, существует ли значение, и проигнорировать его.
Иметь уникальное ограничение, уникальный индекс или первичный ключ.