1
resposta

Alteração do tipo de dado

Durante uma atividade prática, criei algumas tabelas com colunas com o tipo de dado INT, mas depois, vi que o melhor seria STRING. Como alterar o tipo de dado, depois de criado? Tentei utilizar o comando ALTER TABLE nome_tabela ALTER COLUMN nome_coluna VARCHAR, mas o sqlite apresentou erro.

1 resposta

Oi, Leonardo! Como vai?

O SQLite não permite alterar o tipo de dado de uma coluna diretamente. É como se você tivesse um armário com gavetas para guardar apenas livros, e de repente, você quisesse guardar roupas.

Para resolver essa situação, você pode criar uma nova coluna com o tipo de dado desejado, copiar os dados da coluna antiga para a nova e, em seguida, remover a coluna antiga.

Por exemplo, se você tem uma tabela chamada usuarios com uma coluna idade do tipo INT e deseja alterar para VARCHAR, você faria o seguinte:

  1. Renomeie a tabela original:

    ALTER TABLE usuarios RENAME TO usuarios_old;
    
  2. Crie a nova tabela:

    CREATE TABLE usuarios (
        id INTEGER PRIMARY KEY,
        nome VARCHAR,
        idade VARCHAR
    );
    
  3. Copie os dados:

    INSERT INTO usuarios (id, nome, idade)
    SELECT id, nome, idade
    FROM usuarios_old;
    
  4. Exclua a tabela antiga:

    DROP TABLE usuarios_old;
    

Espero ter ajudado!

Abraço ✨

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!