У меня есть следующая таблица:
SomeName
ID number(8) not null,
Field1 varchar2(50) not null,
Field2 varchar2(50) not null,
Field3 varchar2(50) not null
В этой таблице у меня есть следующие строки:
ID,Field1,Field2,Field3
12,'text1','text2','text3'
Теперь я хочу обновить только field2 (с помощью запроса ajax):
HTTP PUT http://host/DataService/SomeName(12M)
Accept: application/json, text/javascript, */*
Content-Type: application/json; charset=utf-8
{ Field2: 'updated field 2' }
Я бы ожидал, что это будет означать:
update sometable
set field2 = 'updated field 2'
where id = '12'
но это не так. Вместо этого я получаю ошибку, которая говорит, что field1 и field3 не могут быть нулевыми. Есть ли простой способ обойти это, чтобы обновлялись только столбцы, указанные в запросе? Нужно ли сначала выбирать уязвимую строку, чтобы заполнить пропущенные значения (что я не хочу по причинам производительности)? Я также не хочу хранить незатронутые столбцы в скрытых полях на стороне клиента, просто чтобы обновление работало. Я использую EFOracleProvider с EF4.
Есть идеи?