6.1 Cambiar la estructura de la base de datos

Y finalmente, la parte más deliciosa de trabajar con bases de datos es cambiar la base de datos. Si crees que esto es algo muy simple, aquí tienes una anécdota sobre el tema:


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!

La situación es exactamente la misma con las bases de datos. ¿Quiere sacar una parte de los datos en la tabla separada? Está bien, necesitas:

  • crear una nueva tabla
  • copiar los datos en esta nueva tabla
  • eliminar columnas de la tabla anterior
  • cambiar todas las consultas SQL que se referían a la tabla anterior
  • agregue consultas SQL que accederán a la nueva tabla
  • cambie el código Java que funcionaba con tablas a la antigua usanza
  • cambie los scripts de copia de seguridad y restauración, ya que ahora las estructuras de la tabla no coinciden
  • si tiene datos de prueba para desarrolladores, también debe cambiarlos

Aunque en realidad es aún peor:

Nueva estructura de base de datos:

  • primero cambia la estructura de la tabla en la máquina del desarrollador
  • entonces estás convencido de que tal estructura es realmente mejor
  • aprobar la nueva estructura de la base de datos

Guiones de migración:

  • escribe scripts que cambiarán los datos de la tabla, etc. en una base de datos real
  • ejecute estos scripts en una máquina con la estructura de base de datos anterior y vea cómo cambia
  • verificar todos los lugares críticos de la nueva base

Actualización a la venta

  • detener la base de datos de producción
  • hacer una copia de seguridad completa
  • ejecutando guiones
  • ya que suele haber muchos en el mercado, estos scripts pueden funcionar durante horas

Lanzas el prod y esperas no tener que hacer retroceder todo.

6.2 Sentencia ALTER TABLE

Por otro lado, el script en sí mismo, que cambia la estructura de la tabla, es muy simple. En cierto modo, es similar a un script de creación de tablas. Vista general de una solicitud de cambio de tabla:

ALTER TABLE table
team 1,
team 2,
Team N

Los comandos son muy diferentes, pero se pueden distinguir tres grupos principales:

  • ADD- agrega algo a la mesa
  • MODIFY- cambia algo en la tabla
  • DROP- elimina algo en la tabla

Y cuando digo algo, no se trata de los datos, sino de la estructura de la tabla.

Por ejemplo, decide agregar una nueva columna a la tabla, luego debe ejecutar la siguiente consulta:

ALTER TABLE table
	ADD COLUMN Name type

Escribamos una consulta que agregará una columna de correo electrónico a nuestra tabla de empleados :

ALTER TABLE employee
	ADD COLUMN email  VARCHAR(10)

Ahora cambiemos la longitud de la cadena de correo electrónico de 10 a 100: para esto necesitamos un nuevo script:

ALTER TABLE employee
	MODIFY COLUMN email VARCHAR(100)

Si desea cambiar algunos atributos de una columna, pero no su tipo, necesita el comando ALTER COLUM . Establezcamos el valor de correo electrónico predeterminado :

ALTER TABLE employee
	ALTER COLUMN email VARCHAR(100)  DEFAULT 'test@test.com'

Y finalmente, la columna se puede eliminar si no la necesita:

ALTER TABLE employee
	DROP COLUMN email 

6.3 Agregar y eliminar una clave principal

Y algunos ejemplos más útiles.

Digamos que olvidamos declarar la columna id como clave principal. Siempre puedes hacerlo por separado a través de ALTER TABLE:

ALTER TABLE employee
	ADD PRIMARY KEY (id);

Quitarlo es aún más fácil:

ALTER TABLE employee
	DELETE PRIMARY KEY;