Я пишу новый набор изменений, чтобы определить уникальный ключ в моей таблице, но, похоже, предыдущий набор изменений вставляет дублированные строки в мою таблицу (под дублированием я имею в виду две записи с одинаковым значением в целевом столбце моего нового). уникальное ограничение).
Из-за производственных ограничений я не могу изменить предыдущие наборы изменений.
Итак, перед добавлением ограничения я хочу удалить дублирующую строку.
Вот мой набор изменений:
{
"changeSet": {
"id": "123",
"author": "me",
"changes": [
{
"delete": {
"tableName": "foo",
"where": "name = 'myname'"
}
},
{
"insert": {
"tableName": "foo",
"columns": [
{
"column": {
"name": "id",
"valueSequenceNext" : "foo_seq"
}
},
{
"column": {
"name": "name",
"valueComputed": "myname"
}
}
]
}
},
{
"addUniqueConstraint": {
"columnNames": "name",
"constraintName": "uk_fooname",
"tableName": "foo"
}
}
]
}
Допустим, мои дублированные записи содержат имя «мое имя». Как видите, я удаляю все дублированные записи, затем мне нужно заново вставить свою уникальную запись.
Мне бы пришлось удалить только одну дублированную строку в моем операторе удаления, вместо того, чтобы удалить обе, а затем вставить снова. Но я не могу найти никакого решения, чтобы поставить условие where в row_number.
Кто-нибудь знает, как добавить к предложению where номер строки?
Спасибо за вашу помощь.