Напротив вставки в - удаление дубликатов

Я очень новичок в Sql, так что терпите меня. Я выполнил запрос следующего запроса:

INSERT INTO adhoc_dt.`table` (id, name) VALUES(53098974, 'John');

однако случайно я запускаю его дважды. Я хотел бы удалить дубликат. Как это сделать?

Я старался

 INSERT INTO adhoc_dt.`table` (id, name) VALUES(53098974, 'John');

но получаю ошибку:

SQL ERROR [1064][42000]: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near

Какая именно ошибка? Кроме того, если id является уникальным ключом или первичным ключом, вам не нужно беспокоиться о наличии дубликатов.

MePsyDuck 28.06.2019 08:57

SQL имеет только 3 способа действия с таблицей INSERT, UPDATE и DELETE, но у вас есть проблема с удалением, если у вас нет способа однозначно идентифицировать строки (для чего полезен идентификатор auto_increment или временная метка). У вас есть уникальный идентификатор строки?

P.Salmon 28.06.2019 09:02
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
В последние годы архитектура микросервисов приобрела популярность как способ построения масштабируемых и гибких приложений. Laravel , популярный PHP...
Как построить CRUD-приложение в Laravel
Как построить CRUD-приложение в Laravel
Laravel - это популярный PHP-фреймворк, который позволяет быстро и легко создавать веб-приложения. Одной из наиболее распространенных задач в...
Освоение PHP и управление базами данных: Создание собственной СУБД - часть II
Освоение PHP и управление базами данных: Создание собственной СУБД - часть II
В предыдущем посте мы создали функциональность вставки и чтения для нашей динамической СУБД. В этом посте мы собираемся реализовать функции обновления...
Документирование API с помощью Swagger на Springboot
Документирование API с помощью Swagger на Springboot
В предыдущей статье мы уже узнали, как создать Rest API с помощью Springboot и MySql .
Роли и разрешения пользователей без пакета Laravel 9
Роли и разрешения пользователей без пакета Laravel 9
Этот пост изначально был опубликован на techsolutionstuff.com .
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
В предыдущей статье мы завершили установку базы данных, для тех, кто не знает.
2
2
401
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Если имя вашей таблицы включает специальный символ зарезервированного слова, вы должны заключить имя таблицы в обратные кавычки:

 `table`

Но, глядя на ваш вопрос, имя таблицы кажется:

`adhoc_dt.`table` 

В этом случае правильный синтаксис для удаления:

DELETE FROM  adhoc_dt.`table`
WHERE id =  53098974 AND name =  'JOHN'

но таким образом вы удаляете все строки с помощью:

 id =  53098974 AND name =  'JOHN'

Вы должны выполнить шаги

  • обрезать таблицу
  • применить уникальное ограничение к идентификатору
  • запустить скрипт вставки

И как мы это делаем? Поскольку это вызывает больше вопросов, поскольку кажется, что это ни на что не отвечает?

Raymond Nijland 28.06.2019 09:52

Другие вопросы по теме