sql - jerarquica - ¿Qué hace DELIMITER// en un activador?
meta html (5)
Agrega un ejemplo:
Cuando trabajamos con el comando mysql shell, usamos ;
Delimitador para cerrar cada sentencia. Sin embargo, en caso de que queramos construir los procedimientos de la tienda y los disparadores, necesitamos agregar el punto ;
coma ;
En estas declaraciones también.
delimiter //
create trigger log_students after insert on students
for each row
begin
insert into log_students(change_by, change_at) values(USER(), NOW());
end//
delimiter ;
DELIMITER //
¿Cuál es el uso de él?
Cambia el delimitador de declaración de ;
a //
. Esto es para que puedas escribir ;
en su definición de activador sin que el cliente MySQL lo malinterprete como si hubiera terminado con eso.
Tenga en cuenta que al volver a cambiar, es DELIMITER ;
, no DELIMITER;
Como he visto, la gente trata de hacer.
En SQL, cierra cada instrucción con un delimitador, que es por defecto un punto y coma (;). En un desencadenador, debe escribir varias declaraciones, cada una de las cuales termina en un punto y coma. Para decirle a MySQL que esos puntos y coma no son el final de su declaración de activación, cambia temporalmente el delimitador; a //, por lo que MySQL sabrá que la instrucción de activación solo finaliza cuando escribe un //.
Lea la documentación de (ummmm) mysql .
delimiter
es el marcador para el final de cada comando que envía al cliente de la línea de comandos mysql.
delimiter
no solo está relacionado con los desencadenantes, sino que la definición de los desencadenantes y los procedimientos almacenados es un caso de uso seguro ya que desea que contengan puntos y comas (;) que de otra manera son el delimiter
predeterminado.
Simple establece el final del delimitador de la declaración ( ;
y coma en el estándar, SQL predeterminado). Cambiar el personaje puede ser útil si quieres usarlo ;
en su SQL, o está utilizando SQL incorporado (donde puede llevar a confusión). de manera similar, la //
en su ejemplo podría generar confusión en el SQL incorporado, o tal vez quiera usarlo en su SQL. Por lo tanto, utilice DELIMITER
para establecer el delimitador que sea apropiado para su aplicación y sus necesidades.