我不熟悉SQL存储过程。
我有一个名为customer的表,它有一个名为accountNo的字段。我想用新的accountNo更新客户表,而accountNo应该从1000增加。
我想更新表中的所有客户,而accountNo将会像100,1001,1002 .....
提前致谢, Nimmy
答案 0 :(得分:2)
这将更新表中的每个客户
UPDATE Customer
SET accountNumber = accountNumber+1000
这是基于你说“客户表只有1个字段 - accountNumber”的事实。但是,我怀疑你的表实际上有一个代表customerId的键(如果没有,它应该!!!)
在这种情况下,您可能希望更新一个特定客户的帐号
UPDATE Customer
SET accountNumber = accountNumber+1000
WHERE customerId = 123
答案 1 :(得分:0)
Jamiec提供的解决方案几乎是正确的,但如果accountNumber上有唯一的密钥,则由于唯一的密钥约束,他的第一次更新可能无效。考虑accoutNumber = 1和accountNumber = 1001,如果将更新accountNumber = 1的行,则首先MySQL将引发错误'行xxx的重复键'。
您需要按顺序更新Customer表
UPDATE Customer
SET accountNumber = accountNumber + 1000
ORDER BY accountNumber DESC