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

Desencadenador de MySQL antes de insertar la columna de actualización con una nueva identificación de incremento automático

AUTO_INCREMENT la columna solo se establece después insertar.

Si necesita acceder ese valor, solo puede en un AFTER INSERT generar. Sin embargo, no puede modificar un valor de columna en un AFTER UPDATE desencadenar...

Además, no puede realizar una actualización en la tabla utilizada en su AFTER INSERT desencadenar como (http://dev.mysql. com/doc/refman/5.0/en/stored-program-restrictions.html ):

Aquí, la única solución razonable sería crear un procedimiento almacenado para actualizar la tabla, ajustando las columnas relevantes en una transacción para "emular" su instrucción de inserción atómica.

Dicho esto, en su caso particular , la key la columna es redundante ya que esa columna es solo la concatenación de otras dos columnas de la misma fila.

Dado su nombre, ¿no está buscando una forma de crear una clave compuesta? Algo así:

ALTER TABLE tbl ADD UNIQUE KEY (countryCode, id);