SQLite 컨텍스트 내.SQLite : 데이터를 유지하면서 기존 테이블에 기본 키가있는 열 추가
나는 현재 수많은 행의 데이터로 채워진 기존 테이블을 가지고 있습니다.
원본 데이터를 유지하면서이 테이블에 새 기본 키 열을 추가하려고합니다. 아래에서 보듯
, 나는 다음과 같은
- 은 기존 테이블 (ID INTEGER)에 새 열을 추가 노력했다.
- 기존 테이블의 이름을 변경하십시오.
- 새 기본 키 (Id INTEGER PRIMARY KEY)가 포함 된 새 테이블을 만듭니다.
- 새로 이름이 바뀐 테이블의 모든 데이터를 새로 만든 테이블에 삽입하십시오.
- 이름이 바뀐 테이블을 삭제하십시오. SQLite는 설명서에 따라,
열 선언 된 INTEGER PRIMARY KEY가 자동 증가 때문에
나는이 일 것이라고 생각하는 이유입니다.
그러나 다음과 같은 오류가 발생합니다.
ErrorCode : 19
Message : constraint failed
UNIQUE constraint failed: Person.Id
Result : Constraint
여기 내 코드입니다.
--Add a new column to the existing table(Id INT).
ALTER TABLE [Person]
ADD Id INTEGER;
--Change the name of the existing table.
ALTER TABLE [Person] RENAME TO Person_temp;
--Create a new table which includes the new PK.
CREATE TABLE Person(
Id INTEGER PRIMARY KEY,
FirstName nvarchar(100) NULL,
LastName nvarchar(100) NULL
);
--Insert all data from the renamed table into the new table.
INSERT INTO Person SELECT * FROM Person_temp;
--Drop the renamed table.
DROP TABLE Person_temp;
빛을 비추는 사람은 누구나 친절 할 수 있습니까?
내가 찾고있는 것.첫 번째 테이블에 Id 열이 필요 없다고 말하는 것도 옳았습니다. 건배 –