Чтобы удалить дублирующиеся записи, вы можете использовать синтаксис DELETE ... FROM ... JOIN
:
DELETE p1
FROM posts p1
INNER JOIN posts p2
WHERE p1.key = p2.key AND p1.created_at > p2.created_at;
Это удалит дубликаты на key
при сохранении записи с более ранним created_at
.
* 1008. * Затем вы можете добавить ограничение
UNIQUE
:
ALTER TABLE posts ADD CONSTRAINT posts_key_unique UNIQUE(key);
Или, что еще лучше, сделать столбец key
первичным ключом таблицы (поскольку у таблицы, похоже, еще нет PK):
ALTER TABLE posts ADD PRIMARY KEY(key);