1
Я обменивать значения столбцов в таблице, используя следующее заявление:SQL Column Своп Поведение
UPDATE SwapTable
SET ValueA=ValueB
,ValueB=ValueA
Это работает, и значение действительно становится местами, как можно проверить с помощью этой SQL Fiddle.
Однако, если бы мы сделали это в основном (в основном на любом другом языке), мы получим как ValueA
, так и ValueB
, имеющие одинаковые значения.
Так что мой вопрос в том, почему/как это работает в SQL.
У вас есть мой вопрос не так. Мой вопрос: если ValueA = ValueB, то при попытке ValueB = ValueA оба столбца должны иметь одинаковые значения, но значения фактически меняются местами. ЗАЧЕМ? –
@SHAKIRSHABBIR, потому что НИЧЕГО не изменилось ПЕРЕД КОМИТЕТОМ. В вашем втором выражении «ValueB = ValueA» используется старое (неизмененное) значение. – valex
Да, я имел в виду то же самое, что и valex. В вашем заявлении «ValueB = ValueA» ValueB является полем referece - target; а не значение, ValueA отправляется из набора строк - фактическое значение; а не цель. И набор строк замораживается после извлечения из таблицы. Никакой проблемы вообще до и после строки фиксации. – tsohr