SQL에서 정수 열 값을 1 씩 증가시키는 방법
내 질문은
열의 값을 1 씩 증가시키는 방법
예를 들어 열에 ID
1,2,3,4, .. 값이 있다고 가정합니다 .
이제이 테이블을 업데이트하면 ID
열이 1 씩 증가해야합니다.
이제 ID
2,3,4,5, ..
테이블의 모든 값에 하나를 추가하려면 ...
UPDATE myTable
SET ID = ID + 1
새 값을 만들려면 이전에 가장 높은 값 (일반적으로)보다 하나 더 많은 값을 만들려면 IDENTITY가 있는 열을 사용하세요.
자동으로 생성 된 각 행에 대해 고유 한 번호를 가지려면 Neil의 대답에 따라 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
위의 코드는 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"으로 설정됩니다.
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)
참고 URL : https://stackoverflow.com/questions/9293900/how-to-increment-integer-columns-value-by-1-in-sql
'programing tip' 카테고리의 다른 글
배치 파일에서 콘솔의 입력을 읽는 방법은 무엇입니까? (0) | 2020.10.21 |
---|---|
스크립트에 대한 부울 인수 (0) | 2020.10.21 |
HTML 테이블 행에 테두리 지정, (0) | 2020.10.21 |
명령 줄에서 SQLCMD의 "x 개의 행이 영향을 받음"을 억제하는 방법이 있습니까? (0) | 2020.10.21 |
SQL Server에서 두 날짜 시간의 차이 (0) | 2020.10.21 |