Al ejecutar la consulta de selección de inserción de mysql, ¿podemos hacer una verificación de condición?

Estoy tratando de ejecutar mysql select insert query como se muestra a continuación.

INSERT INTO ACCOUNTS.TABLE1 (NAME,ID,STARTTIME,ENDTIME) SELECT NAME,ID,CREATIONTIME,EXPIRYTIME FROM ACCOUNTS.TABLE2 WHERE ...;

Ahora, si EXPIRYTIME en table2 es nulo, entonces quiero actualizar ENDTIME en table1 a la marca de tiempo actual. He anulado el comportamiento predeterminado de este campo de marca de tiempo por la descripción

ENDTIME TIMESTAMP NULL DEFAULT NULL

por alguna razón.

¿Es posible en la consulta de inserción de selección anterior incluir algo como una condición if que diga si (expirytime == null) luego actualice la hora de finalización a la marca de tiempo actual?

preguntado el 02 de junio de 11 a las 08:06

3 Respuestas

Simplemente seleccione lo que desee:

INSERT INTO ACCOUNTS.TABLE1 (NAME,ID,STARTTIME,ENDTIME) 
SELECT NAME,ID,CREATIONTIME, ifnull(EXPIRYTIME, now())
FROM ACCOUNTS.TABLE2 WHERE ...;

Respondido el 02 de junio de 11 a las 12:06

INSERT INTO ACCOUNTS.TABLE1 (NAME,ID,STARTTIME,ENDTIME) 
SELECT NAME,ID,CREATIONTIME,if(EXPIRYTIME is null,now(),expirytime) 
FROM ACCOUNTS.TABLE2 WHERE ...;

Respondido el 02 de junio de 11 a las 12:06

¿Qué tal usar un inserto? detonante ¿Para hacer eso?

Respondido el 02 de junio de 11 a las 12:06

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.