unique keywords_i18n constraint plus delete duplicates (#320)
This commit is contained in:
@@ -0,0 +1,18 @@
|
|||||||
|
-- Add unique keyword_i18n locale constraint
|
||||||
|
|
||||||
|
-- First we have to delete the duplicates that already exists (keywords 1316-1326; 138 keywords_i18n entries)
|
||||||
|
with duplicates as (
|
||||||
|
select duplicate.id duplicate_id, *
|
||||||
|
from keywords_i18n first
|
||||||
|
-- inner join the same table where keyword_id, locale_id AND value must all be the same,
|
||||||
|
-- i.e. only duplicate translations with the same translated value will be included
|
||||||
|
join keywords_i18n duplicate using (keyword_id, locale_id, value)
|
||||||
|
where first.id <> duplicate.id
|
||||||
|
-- only include the last copy, so we dont delete the original
|
||||||
|
and duplicate.id > first.id
|
||||||
|
) delete from keywords_i18n where id in (select duplicate_id from duplicates);
|
||||||
|
|
||||||
|
|
||||||
|
-- Now we are allowed to add our constraint
|
||||||
|
ALTER TABLE keywords_i18n ADD UNIQUE (keyword_id, locale_id);
|
||||||
|
|
||||||
Reference in New Issue
Block a user