私の質問は
列の値を1インクリメントする方法。
たとえば、列のID
値が1、2、3、4 、.であるとします。
このテーブルを更新すると、ID
列が1ずつ増加するはずです。
これでID
2、3、4、5 、.になります。
回答:
ISNULL
ステートメントを使用します:(このSOの回答UPDATE myTable SET ID = ISNULL(ID, 0) + 1
から
SET [Lic] = [Lic] + @dif
。注@dif可変とすることができる正、0、または負
Oracleでは、コードはもう少しトリッキーです。
シーケンスオブジェクトを使用して自動インクリメントフィールドを作成する必要があります(このオブジェクトは数列を生成します)。
次のCREATESEQUENCE構文を使用します。
CREATE SEQUENCE seq_person
MINVALUE 1
START WITH 1
INCREMENT BY 1
CACHE 10
上記のコードは、1から始まり、1ずつ増加するseq_personというシーケンスオブジェクトを作成します。また、パフォーマンスのために最大10個の値をキャッシュします。キャッシュオプションは、アクセスを高速化するためにメモリに保存されるシーケンス値の数を指定します。
「Persons」テーブルに新しいレコードを挿入するには、nextval関数を使用する必要があります(この関数はseq_personシーケンスから次の値を取得します)。
INSERT INTO Persons (ID,FirstName,LastName)
VALUES (seq_person.nextval,'Lars','Monsen')
上記のSQLステートメントは、「Persons」テーブルに新しいレコードを挿入します。「ID」列には、seq_personシーケンスの次の番号が割り当てられます。「FirstName」列は「Lars」に設定され、「LastName」列は「Monsen」に設定されます。