Может ли INSERT использоваться для обновления базы данных вместо UPDATE? - PullRequest
0 голосов
/ 13 января 2012

У меня проблема с командой обновления. Это не так, как будто код написан неправильно; У меня было три человека, которые смотрели на это и не давали четкого ответа, почему код не работает. Так что вместо того, чтобы заставить код работать, возможно ли использовать INSERT для замены данных в базе данных вместо UPDATE?

Ответы [ 3 ]

1 голос
/ 13 января 2012

Для MySQL есть REPLACE, который удаляет возможные существующие строки и вставляет ( mysql doc ) или эквивалентный синтаксис INSERT ... ON DUPLICATE KEY UPDATE ( mysql doc ).

Для некоторых других баз данных есть MERGE - Oracle , MS SQL

Во всяком случае, об этом полезно знать, но вы бы сначала исправили UPDATE.

1 голос
/ 13 января 2012

Нет. Вставка создаст только новую строку.

Ну ... вы можете выполнить удаление, а затем вставить, но в этом и заключается безумие.

0 голосов
/ 13 января 2012

Вам нужно будет вставить новую строку, проверить, что вставленная строка работала, а затем удалить оригинал, это вызовет все виды проблем с уникальными ключами.

Опубликуйте свой код, и ошибка, с которой вы столкнулись, может быть в состоянии обнаружить что-то, что было пропущено.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...