Moje pytania to
jak zwiększyć wartość kolumny o 1.
Na przykład załóżmy, że kolumna ID
ma wartości 1, 2, 3, 4, ..
Teraz, gdy zaktualizuję tę tabelę, ID
kolumna powinna wzrosnąć o 1,
Teraz ID
stanie się 2,3,4,5, ..
Moje pytania to
jak zwiększyć wartość kolumny o 1.
Na przykład załóżmy, że kolumna ID
ma wartości 1, 2, 3, 4, ..
Teraz, gdy zaktualizuję tę tabelę, ID
kolumna powinna wzrosnąć o 1,
Teraz ID
stanie się 2,3,4,5, ..
Odpowiedzi:
Aby dodać jeden do każdej wartości w tabeli ...
UPDATE myTable
SET ID = ID + 1
Aby utworzyć nową wartość, o jedną więcej niż poprzednia najwyższa (zwykle), użyj kolumny z IDENTITY
ISNULL
oświadczenia : UPDATE myTable SET ID = ISNULL(ID, 0) + 1
(Zaczerpnięte z tej odpowiedzi SO )
SET [Lic] = [Lic] + @dif
. Uwaga Zmienna @dif może być dodatnia, 0 lub ujemna
Spróbuj tego:
Update Emp set testCount = ISNULL(testCount, 0) + 1 where testId=1
Możesz użyć, IDENTITY
które zrobi to za Ciebie.
CREATE TABLE [dbo].[MyTable](
[MyTableID] [int] IDENTITY(1,1) NOT NULL,
-- Other columns
)
Kiedy wstawisz swój pierwszy rekord, otrzymasz Id
1.
W Oracle kod jest nieco bardziej skomplikowany.
Będziesz musiał utworzyć pole autoinkrementacji z obiektem sekwencji (ten obiekt generuje sekwencję liczb).
Użyj następującej składni CREATE SEQUENCE:
CREATE SEQUENCE seq_person
MINVALUE 1
START WITH 1
INCREMENT BY 1
CACHE 10
Powyższy kod tworzy obiekt sekwencji o nazwie seq_person, który zaczyna się od 1 i będzie zwiększany o 1. Będzie również buforował do 10 wartości w celu zwiększenia wydajności. Opcja pamięci podręcznej określa, ile wartości sekwencji będzie przechowywanych w pamięci, aby uzyskać szybszy dostęp.
Aby wstawić nowy rekord do tabeli „Persons”, będziemy musieli skorzystać z funkcji nextval (ta funkcja pobiera następną wartość z sekwencji seq_person):
INSERT INTO Persons (ID,FirstName,LastName)
VALUES (seq_person.nextval,'Lars','Monsen')
Powyższa instrukcja SQL wstawiłaby nowy rekord do tabeli „Osoby”. Kolumnie „ID” zostanie przypisany kolejny numer z sekwencji seq_person. Kolumna „FirstName” zostanie ustawiona na „Lars”, a kolumna „LastName” zostanie ustawiona na „Monsen”.
Możesz spróbować następujących rzeczy:
DECLARE @i INT
SET @i = @@ROWCOUNT + 1
INSERT INTO YourTable
(Identity Column)
VALUES
(@i + 1)