|
|
|
Как обновить/добавить запись в одном запросе без PK?
|
|||
|---|---|---|---|
|
#18+
Есть система, работающая с БД MySQL. Пишу скрипт, который будет синхронизировать данные в этой системе с данными из другой внешней системы. В БД есть таблица тарифов. При синхронизации с внешней системой нужно добавить новые тарифы (еще не существующие), обновить существующие, а для удаленных из внешней системы тарифы нужно обновить поле-флаг. Идентифицируются тарифы по коду, который во внешней системе не меняется (PK). Однако в имеющейся системы PK отсутствует, ключевое поле просто проиндексировано. Соответственно использовать ON DUPLICATE KEY я не могу. Есть ли в MySQL альтернативный вариант добавления/обновления записей в одном запросе, в котором критерий совпадения можно указывать произвольный, как в оракловском MERGE? ________________________ Мы смотрим с оптимизмом... ...в оптический прицел. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2014, 12:00:05 |
|
||
|
Как обновить/добавить запись в одном запросе без PK?
|
|||
|---|---|---|---|
|
#18+
Alibek B.Однако в имеющейся системы PK отсутствует, ключевое поле просто проиндексировано. Соответственно использовать ON DUPLICATE KEY я не могу.Что мешает из этого поля сделать PK или хотя бы уникальный индекс? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2014, 12:01:39 |
|
||
|
Как обновить/добавить запись в одном запросе без PK?
|
|||
|---|---|---|---|
|
#18+
Я не знаю мотивов разработчика этой системы, возможно в логике системы возможно временное нарушение уникальности ключа или использование null. Вопрос я задал, если будет возможно, PK я добавлю. А если этого делать нельзя, хотелось бы знать, есть ли альтернативы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2014, 12:05:41 |
|
||
|
Как обновить/добавить запись в одном запросе без PK?
|
|||
|---|---|---|---|
|
#18+
Alibek B.А если этого делать нельзяА если этого сделать нельзя, то какую из нескольких записей нужно обновлять? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2014, 12:09:41 |
|
||
|
Как обновить/добавить запись в одном запросе без PK?
|
|||
|---|---|---|---|
|
#18+
В таблице тарифов есть два поля (BILLCODE, CODE), которые однозначно идентифицируют запись. Но возможно, что во время каких-то операций в эти поля временно пишутся какие-то значения, которые нарушают PK. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2014, 12:22:17 |
|
||
|
|

start [/forum/topic.php?fid=47&msg=38551662&tid=1835264]: |
0ms |
get settings: |
5ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
53ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
36ms |
get tp. blocked users: |
1ms |
| others: | 204ms |
| total: | 325ms |

| 0 / 0 |
