No SQLite, você pode usar o
ALTER TABLE instrução para adicionar uma coluna a uma tabela existente. Esta é realmente uma das poucas coisas que você pode fazer com o
ALTER TABLE instrução em SQLite. As únicas coisas que você pode fazer com ALTER TABLE instrução no SQLite é renomear uma tabela, renomear uma coluna e adicionar uma nova coluna a uma tabela existente. Exemplo 1
Imagine que temos a seguinte tabela:
CREATE TABLE Cats(
CatId INTEGER PRIMARY KEY,
CatName
); E agora queremos adicionar uma coluna chamada DOB . Poderíamos fazer isso usando o seguinte código:
ALTER TABLE Cats ADD COLUMN DOB; É simples assim.
Restrições
Você também pode fornecer outras especificações para a definição, como restrições, etc., mas há algumas restrições.
Em particular:
- A nova coluna não pode ter uma
PRIMARY KEYouUNIQUErestrição. - A nova coluna não pode ter um valor padrão de
CURRENT_TIME,CURRENT_DATE,CURRENT_TIMESTAMP, ou uma expressão entre parênteses. - Se um
NOT NULLrestrição for especificada, a coluna deverá ter um valor padrão diferente deNULL. - Se as restrições de chave estrangeira estiverem habilitadas e uma coluna com
REFERENCESé adicionada, a coluna deve ter um valor padrão deNULL. - Se a nova coluna for uma coluna gerada, ela não pode ser
STOREDcoluna. Pode ser umVIRTUALcoluna.
Exemplo 2
Aqui está outro exemplo, desta vez adiciono mais algumas especificações à definição da nova coluna:
CREATE TABLE Dogs(
DogId INTEGER PRIMARY KEY,
DogName
); E agora queremos adicionar uma coluna chamada DOB . Poderíamos fazer isso usando o seguinte código:
ALTER TABLE Dogs
ADD COLUMN Score NOT NULL DEFAULT 0; Verifique as alterações
Existem várias maneiras de verificar a estrutura de uma tabela no SQLite.
Uma maneira é usar o
PRAGMA table_info() demonstração. PRAGMA table_info(Dogs); Resultado:
cid name type notnull dflt_value pk --- ------- ------- ---------- ---------- -- 0 DogId INTEGER 0 1 1 DogName 0 0 2 Score 1 0 0
Podemos ver a nova coluna e podemos ver que ela tem um
NOT NULL restrição e que seu valor padrão é 0 .