Форум программистов, компьютерный форум, киберфорум
C#: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/6: Рейтинг темы: голосов - 6, средняя оценка - 4.50
5 / 5 / 2
Регистрация: 08.02.2021
Сообщений: 49

Как избежать повторных записей в таблицу

09.11.2022, 16:54. Показов 1316. Ответов 8

Студворк — интернет-сервис помощи студентам
Имеется такой код для добавления записи
C#
1
SqlCommand command1 = new SqlCommand($"insert into bspu (chat_id, count) values ('{msg.Chat.Id}', '0')", sql);
Можно ли как-то в этом запросе избежать создания дубликатов?

Добавлено через 5 минут
C#
1
SqlCommand command1 = new SqlCommand($"insert into bspu (chat_id, count) values ('{msg.Chat.Id}', '0') where not exists (select * from bspu where chat_id = {msg.Chat.Id})", sql);
Пробовал так и ругается на синтаксис
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
09.11.2022, 16:54
Ответы с готовыми решениями:

Избежать повторных вопросов в программе для тестирования
Здравствуйте, помогите пожалуйста избавится от повторения randrom Private Sub Button2_Click(ByVal sender As System.Object, ByVal...

Как избежать дублирования записей?
Вопрос, наверное, совсем идиотский, но я новичок, уж простите. Создал в MS SQL таблицу Owners с двумя полями (*OwnerID, FIO). OwnerID...

Как избежать дублирование записей в справочнике?
Здрасте, такой вопросик появился: Есть справочник номенклатура. Очень простой. Реквизит "Наименование" и табличная часть с...

8
 Аватар для Andrey-MSK
3353 / 2239 / 388
Регистрация: 14.08.2018
Сообщений: 7,569
Записей в блоге: 4
09.11.2022, 17:23
GreyCardinal,
T-SQL
1
chat_id int NOT NULL IDENTITY(1, 1) PRIMARY KEY
и тогда ID всегда будет уникальным и не нужно будет его руками вставлять, он сам будет записываться при вставке записи.

Добавлено через 6 минут
GreyCardinal, или chat_id внешний ключ в таблице?
1
5 / 5 / 2
Регистрация: 08.02.2021
Сообщений: 49
09.11.2022, 17:25  [ТС]
Andrey-MSK, Дело в том, что колонка chat_id должна пополняться в соответствии с айди пользователя (пишу бота для телеги) и БД нужна для цели как в статье https://habr.com/ru/sandbox/148886/

Соответственно при использовании одной и той же команды происходит это:
Миниатюры
Как избежать повторных записей в таблицу  
0
2810 / 1679 / 885
Регистрация: 14.04.2015
Сообщений: 5,723
09.11.2022, 17:44
GreyCardinal, https://www.w3schools.com/sql/... select.asp
1
5 / 5 / 2
Регистрация: 08.02.2021
Сообщений: 49
09.11.2022, 17:54  [ТС]
AndreyVorobey, у меня ведь нет второй таблицы

Добавлено через 7 минут
и вставляю я значения с помощью VALUES
0
 Аватар для Andrey-MSK
3353 / 2239 / 388
Регистрация: 14.08.2018
Сообщений: 7,569
Записей в блоге: 4
09.11.2022, 17:56
GreyCardinal, Что должно произойти при добавлении такого же ID? 0+1 или что-то другое?
1
5 / 5 / 2
Регистрация: 08.02.2021
Сообщений: 49
09.11.2022, 18:24  [ТС]
Andrey-MSK, ничего не должно произойти : D

Добавлено через 4 минуты
Нужно как-то проверить, что, если запись с таким chat_id есть, то он не добавит такую же

Добавлено через 21 минуту
Andrey-MSK, Нашел решение
C#
1
SqlCommand command1 = new SqlCommand($"if not exists (select * from bspu where chat_id = {msg.Chat.Id}) insert into bspu (chat_id, count) values ('{msg.Chat.Id}', '0')", sql);
0
 Аватар для Andrey-MSK
3353 / 2239 / 388
Регистрация: 14.08.2018
Сообщений: 7,569
Записей в блоге: 4
10.11.2022, 08:18
GreyCardinal, Ну тогда уж лучше использовать MERGE для MS SQL Server. Написать с ним хранимку и все дела.
1
Valechka-Думай о Высоком
 Аватар для Ludwig Valentin
171 / 290 / 26
Регистрация: 11.08.2022
Сообщений: 3,713
10.11.2022, 10:17
Ещё идея.
Уникальный ID плюс можно проверять повторяющиеся данные в остальных полях, скажем, на триггере.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
10.11.2022, 10:17
Помогаю со студенческими работами здесь

Удаление повторных записей
Есть программа, не очень правильно работает. Добавляются данные(в список) при нажатии на кнопку СИНХРОНИЗИРОВАТЬ должны и добавленных...

Удаление повторных записей из Listbox
У меня в Listbox выводятся записи из таблицы Accessа. Там много записей одинаковых. а как сделать чтобы выводились только уникальные

Удаление повторных записей в ListView
Доброго времени суток. Помогите с проблемкой. Как в элементе ListView ограничить добавление повторных записей? Элементы берутся из...

Как вывести таблицу записей с бд в таблицу html
<? include("connect.php"); ?> <!DOCTYPE html> <html> <head> <title></title> <meta charset="utf-8"> ...

Как избежать дублирования данных в текстовом поле при вставке в mysql таблицу
Как избежать дублирования данных в текстовом поле при вставке в mysql таблицу?? Помогите пожалуйста, разбираю вопросы на которые не...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита, которое может. . .
Команды "Заполнить" и "Очистить" на форме документа
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". На примере нетипового документа разработанного в конфигурации КА2. В качестве источника данных указан регистр накопления, в который записываются данные о. . .
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при изменении наименования справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере изменения наименования типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
SDL3 для Desktop (MinGW): Вывод текста со шрифтом TTF с помощью библиотеки SDL3_ttf на Си и C++
8Observer8 24.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-text-sdl3-c. zip finish-text-sdl3-cpp. zip
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru