首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用F#更新SQL表

如何使用F#更新SQL表
EN

Stack Overflow用户
提问于 2011-10-15 01:52:52
回答 1查看 293关注 0票数 2

我想从F#查询更新MySQL表。基本上,我现在可以将MySql表导入到F#矩阵中。我正在通过F#对这个矩阵进行一些计算,在计算之后,我想用获得的新值更新主要的MySQL表。例如,让我们以一个来自MySQL表的简单矩阵为例:

代码语言:javascript
复制
let m  = matrix [[1.;2.;3.];[1.;1.;3.];[3.;3.;3.]]

现在我想设计一个更新mySQL表的查询。

代码语言:javascript
复制
let query() =
  seq { use conn = new SqlConnection(connString)
        do conn.Open()
        use comm = new SqlCommand("UPDATE MyTAble SET ID = "the first column of the matrix",
                                  conn)
       }

我需要将矩阵转换成序列吗?对于这次迭代更新,我是否需要使用T-SQL (我是通过阅读其他答案找到这种方式的?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-10-15 02:16:53

没有内置的功能可以更容易地更新数据库中的F# matrix,因此您必须自己编写更新。我认为最好的方法是使用for遍历矩阵,如果值发生了变化,则运行update命令。类似于:

代码语言:javascript
复制
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是否有类似的功能。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7771560

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档