如何在SQL中将整数列值增加1
我的问题是
如何将列的值增加1。
例如,假设列ID
值为1,2,3,4 ..
现在当我更新这个表时, ID
列应该增加1,
现在ID
将变成2,3,4,5 ..
为表格中的每个值添加一个…
UPDATE myTable SET ID = ID + 1
要创build一个新值,比先前最高(通常)多一个,请使用IDENTITY列
如果你想为自动生成的每行有一个唯一的编号,这是尼尔的答案是身份。
如果每次更新表格,都要增加值(即它们不是键):
Update MyTable Set IDColumn = IDColumn + 1 Where <whatever>
在甲骨文的代码是有点棘手。
您将不得不使用序列对象创build一个自动递增字段(该对象生成一个数字序列)。
使用以下CREATE SEQUENCE语法:
CREATE SEQUENCE seq_person MINVALUE 1 START WITH 1 INCREMENT BY 1 CACHE 10
上面的代码创build了一个名为seq_person的序列对象,它以1开始,并且将递增1.它还将caching10个性能值。 caching选项指定将多less个序列值存储在内存中以便更快地访问。
要插入一个新的logging到“Persons”表中,我们将不得不使用nextval函数(这个函数从seq_person序列中检索下一个值):
INSERT INTO Persons (ID,FirstName,LastName) VALUES (seq_person.nextval,'Lars','Monsen')
上面的SQL语句会在“Persons”表中插入一条新logging。 “ID”列将被分配seq_person序列中的下一个数字。 “FirstName”列将被设置为“Lars”,“LastName”列将被设置为“Monsen”。
尝试这个 :
Update Emp set testCount= ISNULL(testCount, 0) + 1 where testId=1
你可以使用IDENTITY
来为你做这个。
CREATE TABLE [dbo].[MyTable]( [MyTableID] [int] IDENTITY(1,1) NOT NULL, -- Other columns )
当你插入你的第一个logging,你会得到1的Id
。
你可以试试以下内容:
DECLARE @i INT SET @i = @@ROWCOUNT + 1 INSERT INTO YourTable (Identity Column) VALUES (@i + 1)