Posts Tagged ‘mysql’

MySQL: “INSERT INTO … SELECT …” y “NOW()”

Sábado, agosto 28th, 2010

Tuve la necesidad de hacer una migración de datos en MySQL: De una tabla origen a otra destino completamente distintas (eran tablas de plugins distintos del WordPress). Para ello me topé con dos problemas:

  • ¿Cómo recupero un valor con la fecha del día? (algo así como el “today” de oracle)
  • ¿Cómo hago un “select … into”?
  • Si deseas consultar la fecha del sistema:

    mysql> select date(now())as DateToday;
    +------------+
    | DateToday  |
    +------------+
    | 2008-12-22 |
    +------------+
    1 row in set (0.00 sec)
    

    Un select para llenar otra tabla:

    MySQL Server no soporta la sintaxis de extensiones Sybase SQL: SELECT … INTO TABLE …. En su lugar, MySQL Server soporta la sintaxis estándar SQL INSERT INTO … SELECT …, que básicamente es lo mismo.

    INSERT INTO tbl_temp2 (fld_id)
        SELECT tbl_temp1.fld_order_id
        FROM tbl_temp1 WHERE tbl_temp1.fld_order_id > 100;
    

    Juntando ambas cosas:

    INSERT INTO nueva_tabla (texto_nuevo, fecha_insercion)
        SELECT texto_viejo, now()
        FROM tabla_vieja;