Ответ 1
Чтобы добавить одно к каждому значению в таблице...
UPDATE myTable
SET ID = ID + 1
Чтобы создать новое значение, другое, а затем предыдущее самое высокое (обычно), используйте столбец с идентификатором
Мои вопросы
как увеличить значение столбца на 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)