通过表单提交更新数据库表中的单个值

时间:2012-10-24 13:37:38

标签: postgresql playframework

这是我在数据库中的表:

 id  | account_name | account_number | account_type | address |            email             | ifsc_code | is_default_account |  phone_num  | User
-----+--------------+----------------+--------------+---------+------------------------------+-----------+--------------------+-------------+----------
 201 | helloi32irn  | 55265766432454 | Savings      |         | mypal.appa99721989@gmail.com | 5545      | f                  | 98654567876 | abc
 195 | hello        | 55265766435523 | Savings      |         | mypal.1989@gmail.com         | 5545      | t                  | 98654567876 | axyz
 203 | what         | 01010101010101 | Current      |         | guillaume@sample.com         | 6123      | f                  | 09099990    | abc 

在视图中的表单提交上,只发布一个参数,在我的情况下是name =“activate”,它对应于表中的“is_default_account”列。 我想将“is_default_account”的值从“t”更改为“f”。例如,在表中,对于account_name“hello”,它是“t”。我想要将其停用,即将其设为“f”并激活已通过表单发送的任何其他内容

2 个答案:

答案 0 :(得分:1)

这将更新您的表并使帐户“默认”(假设is_default_account是BOOLEAN字段):

UPDATE table
SET is_default_account = (account_name = 'what')

如果表格超过您列出的几行,您可能需要限制更新,如下所示:

UPDATE table
SET is_default_account = (account_name = 'what')
WHERE is_default_account != (account_name = 'what')
  AND <limit updates by some other criteria like user name>

答案 1 :(得分:0)

我认为要完成您想要做的事情,您应该从表单中发送至少两个值。一个用于您要更新的帐户的ID,另一个用于操作(在此处激活)。您也可以发送ID并切换它。有很多方法可以做到这一点,但我无法弄清楚你想要做什么,以及你是否想要SQL或Playframework代码。在不限制您的更新(如id)的情况下,您无法精确控制哪些特定行得到更新。如果您想在playframework方面获得帮助,请澄清您的问题并添加更多代码,我认为您会这样做。