Подтвердить что ты не робот

Как увеличить число столбцов на 1 в SQL

Мои вопросы

как увеличить значение столбца на 1.

Например, предположим, что столбец ID имеет значения 1,2,3,4,...

Теперь, когда я обновляю эту таблицу, столбец ID должен увеличиваться на 1,

Теперь ID станет 2,3,4,5,..

4b9b3361

Ответ 1

Чтобы добавить одно к каждому значению в таблице...

UPDATE myTable
SET ID = ID + 1

Чтобы создать новое значение, другое, а затем предыдущее самое высокое (обычно), используйте столбец с идентификатором

Ответ 2

Если вы хотите иметь уникальный номер для каждой автоматически генерируемой строки, это IDENTITY в соответствии с ответом Нила.

Если каждый раз, когда вы обновляете таблицу, вы хотите увеличить значения (т.е. они не являются ключами):

Update MyTable
Set IDColumn = IDColumn + 1
Where <whatever>

Ответ 3

Попробуйте следующее:

Update Emp set testCount= ISNULL(testCount, 0) + 1 where testId=1

Ответ 4

В 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".

Ответ 5

Вы можете использовать IDENTITY, который сделает это за вас.

CREATE TABLE [dbo].[MyTable](
    [MyTableID] [int] IDENTITY(1,1) NOT NULL,
    -- Other columns
)

Когда вы вставляете свою первую запись, вы получите Id из 1.

Ответ 6

Вы можете попробовать следующее:

DECLARE @i INT
SET @i = @@ROWCOUNT + 1

INSERT INTO YourTable
        (Identity Column)    
VALUES    
        (@i + 1)