Мои вопросы
как увеличить значение столбца на 1.
Например, предположим, что столбец ID
имеет значения 1,2,3,4,...
Теперь, когда я обновляю эту таблицу, столбец ID
должен увеличиваться на 1,
Теперь ID
станет 2,3,4,5,..
Мои вопросы
как увеличить значение столбца на 1.
Например, предположим, что столбец ID
имеет значения 1,2,3,4,...
Теперь, когда я обновляю эту таблицу, столбец ID
должен увеличиваться на 1,
Теперь ID
станет 2,3,4,5,..
Чтобы добавить одно к каждому значению в таблице...
UPDATE myTable
SET ID = ID + 1
Чтобы создать новое значение, другое, а затем предыдущее самое высокое (обычно), используйте столбец с идентификатором
Если вы хотите иметь уникальный номер для каждой автоматически генерируемой строки, это IDENTITY в соответствии с ответом Нила.
Если каждый раз, когда вы обновляете таблицу, вы хотите увеличить значения (т.е. они не являются ключами):
Update MyTable
Set IDColumn = IDColumn + 1
Where <whatever>
Попробуйте следующее:
Update Emp set testCount= ISNULL(testCount, 0) + 1 where testId=1
В Oracle код немного сложнее.
Вам нужно будет создать поле автоматического инкремента с объектом последовательности (этот объект генерирует последовательность чисел).
Используйте следующий синтаксис CREATE SEQUENCE:
CREATE SEQUENCE seq_person
MINVALUE 1
START WITH 1
INCREMENT BY 1
CACHE 10
В приведенном выше коде создается объект последовательности, называемый seq_person, который начинается с 1 и будет увеличиваться на 1. Он также будет кэшировать до 10 значений для производительности. Параметр cache указывает, сколько значений последовательности будет сохранено в памяти для более быстрого доступа.
Чтобы вставить новую запись в таблицу "Персоны", нам нужно будет использовать функцию nextval (эта функция извлекает следующее значение из последовательности seq_person):
INSERT INTO Persons (ID,FirstName,LastName)
VALUES (seq_person.nextval,'Lars','Monsen')
Вышеприведенный оператор SQL вставляет новую запись в таблицу "Лица". Столбец "ID" будет присвоен следующий номер из последовательности seq_person. Столбец "FirstName" будет установлен в "Lars", а столбец "LastName" будет установлен в "Monsen".
Вы можете использовать IDENTITY
, который сделает это за вас.
CREATE TABLE [dbo].[MyTable](
[MyTableID] [int] IDENTITY(1,1) NOT NULL,
-- Other columns
)
Когда вы вставляете свою первую запись, вы получите Id
из 1.
Вы можете попробовать следующее:
DECLARE @i INT
SET @i = @@ROWCOUNT + 1
INSERT INTO YourTable
(Identity Column)
VALUES
(@i + 1)