6.1 Mudando a estrutura do banco de dados
E, finalmente, a parte mais deliciosa de trabalhar com bancos de dados é alterar o banco de dados. Se você acha que isso é algo muito simples, aqui está uma anedota para você sobre o assunto:
The service station master, wiping his hands, hands over the car to the client and chats along the way:
- But who do you work for?
- I am a cardiac surgeon, I perform heart operations.
- And they pay a lot?
- $20,000 per operation.
- Nothing for myself ... But we, in fact, are doing the same thing, sorting out the engines, and they pay me only $ 300 ...
- Do you want to earn as much as I do?
- Want...
The surgeon starts the engine in the car and turns to the master:
- Move over!
A situação é exatamente a mesma com bancos de dados. Você quer tirar uma parte dos dados na tabela separada? Ok, você precisa:
- criar uma nova tabela
- copie os dados para esta nova tabela
- remover colunas da tabela antiga
- alterar todas as consultas SQL que se referiam à tabela antiga
- adicionar consultas SQL que acessarão a nova tabela
- altere o código Java que funcionava com tabelas da maneira antiga
- altere os scripts de backup e restauração, pois agora as estruturas da tabela não correspondem
- se você tiver dados de teste para desenvolvedores, precisará alterá-los também
Embora na realidade seja ainda pior:
Nova estrutura do banco de dados:
- primeiro você altera a estrutura da tabela na máquina do desenvolvedor
- então você está convencido de que tal estrutura é realmente melhor
- aprovar a nova estrutura do banco de dados
Scripts de migração:
- você escreve scripts que irão alterar os dados da tabela, etc. em um banco de dados real
- execute esses scripts em uma máquina com a estrutura de banco de dados antiga e veja como ela muda
- verificar todos os locais críticos da nova base
atualização na venda
- parar o banco de dados de produção
- faça um backup completo
- executando scripts
- como geralmente existem muitos no mercado, esses scripts podem funcionar por horas
Você inicia o prod e espera não ter que reverter tudo.
6.2 Instrução ALTER TABLE
Por outro lado, o próprio script, que altera a estrutura da tabela, é muito simples. De certa forma, é semelhante a um script de criação de tabela. Visão geral de uma solicitação de alteração de tabela:
ALTER TABLE table
team 1,
team 2,
Team N
Os comandos são muito diferentes, mas três grupos principais podem ser distinguidos:
ADD
- acrescenta algo à mesaMODIFY
- muda algo na tabelaDROP
- exclui algo na tabela
E quando digo algo, não é sobre os dados, mas sobre a estrutura da tabela.
Por exemplo, você decide adicionar uma nova coluna à tabela e precisa executar a seguinte consulta:
ALTER TABLE table
ADD COLUMN Name type
Vamos escrever uma consulta que adicionará uma coluna de e-mail à nossa tabela de funcionários :
ALTER TABLE employee
ADD COLUMN email VARCHAR(10)
Agora vamos alterar o comprimento da string de e-mail de 10 para 100: para isso precisamos de um novo script:
ALTER TABLE employee
MODIFY COLUMN email VARCHAR(100)
Se você quiser alterar alguns atributos de uma coluna, mas não seu tipo, precisará do comando ALTER COLUM
. Vamos definir o valor de e-mail padrão :
ALTER TABLE employee
ALTER COLUMN email VARCHAR(100) DEFAULT 'test@test.com'
E, finalmente, a coluna pode ser removida se você não precisar dela:
ALTER TABLE employee
DROP COLUMN email
6.3 Adicionando e removendo uma chave primária
E alguns exemplos mais úteis.
Digamos que esquecemos de declarar a coluna id como a chave primária. Você sempre pode fazê-lo separadamente via ALTER TABLE
:
ALTER TABLE employee
ADD PRIMARY KEY (email);
Removê-lo é ainda mais fácil:
ALTER TABLE employee
DELETE PRIMARY KEY;
GO TO FULL VERSION