Нет встроенной функциональности, которая облегчила бы обновление F # matrix
в базе данных, поэтому вам придется написать обновление самостоятельно.Я думаю, что лучший подход - просто перебрать матрицу, используя for
, и запустить команду обновления, если значение изменилось.Примерно так:
let m1 = matrix [[1.;0.]; [0.;2.]] // The original value from DB
let m2 = m1 + m1 // New updated matrix
for i in 0 .. (fst m1.Dimensions) - 1 do
for j in 0 .. (snd m1.Dimensions) - 1 do
if m1.[i, j] <> m2.[i, j] then
// Here you need to do the actual update
printfn "SET %d, %d = %f" i j m2.[i, j]
Ваша функция уже показывает, как запустить одну команду UPDATE - просто обратите внимание, что вам не нужно переносить ее в seq { .. }
, если вы не возвращаете последовательность результатов (здесь вы просто хотите выполнить какое-либо действие).
Если количество измененных значений велико, то может быть полезно использовать некоторые функции массового обновления (чтобы не запускать слишком много команд SQL, которыеможет быть медленным), но я не уверен, что в MySQL есть что-то подобное.