sql >> Base de Datos >  >> RDS >> Mysql

Cómo realizar la edición en la tabla de unión

No es necesario que elimine todas las filas para comenzar.

Puede eliminar solo las filas que ya no se aplican e insertar solo las filas que son nuevas. O puede actualizar un valor que ya no se aplica con un valor que sí se aplica.

Así que para salir de esto

Name    Role
--
John    Admin
John    Member
John    Superuser

a esto

Name    Role
--
John    Member
John    Junior

Puede eliminar lo que ya no se aplica. . .

delete from userinroles
where Name = 'John' 
  and (Role = 'Admin' or Role = 'Superuser');

e inserte lo que corresponda.

insert into userinroles (Name, Role)
values ('John', 'Junior');

O puede actualizar un valor con un nuevo valor.

delete from userinroles
where Name = 'John' 
  and Role = 'Admin';

Seguido por

update userinroles
set Role = 'Junior'
where 'Name' = 'John' and Role = 'Superuser';

Tú dijiste

Para eso están las transacciones. Múltiples declaraciones dentro de una sola transacción SQL son todo o nada, o todas tienen éxito o no se realizan cambios.