2012-03-09 91 views
1

我不熟悉SQL存储过程。存储过程 - 更新查询

我有一个名为customer的表,它有一个名为accountNo的表。我想用新帐户更新客户表,并且帐户编号应该从1000开始递增。

我想更新表格中的所有客户和帐户否将像100,1001,1002 .....

在此先感谢, Nimmy

回答

2

这将更新客户表中的

UPDATE Customer 
SET accountNumber = accountNumber+1000 

这是基于对你说:“customer表的事实只有1个字段 - accountNumber“。不过,我怀疑的是,你的表实际上具有代表一个客户ID的关键(如果不是,它应该!!!)

在这种情况下,你可能要更新一个特定的客户帐号

UPDATE Customer 
SET accountNumber = accountNumber+1000 
WHERE customerId = 123 
0

由Jamiec提供的解决方案几乎是正确的,但如果accountNumber上有唯一密钥,则由于唯一键约束,他的第一次更新可能不起作用。考虑accoutNumber = 1和accountNumber = 1001,如果accountNumber = 1的行将被首先更新,MySQL将引发错误'xxx行的重复键'。

你需要以更新Customer表

UPDATE Customer 
SET accountNumber = accountNumber + 1000 
ORDER BY accountNumber DESC