Estoy escribiendo un código en la sección para crear una tabla que consta de 1300 filas y 6 columnas:

create table test1 as SELECT cd_screen_function,
     SUM(access_count) AS max_count,
     MIN(response_time_min) as response_time_min,
     AVG(response_time_avg) as response_time_avg,
     MAX(response_time_max) as response_time_max,
     SUM(response_time_tot) as response_time_tot,
     COUNT(*) as row_count
     FROM sheet WHERE  ts_update BETWEEN unix_timestamp('2012-11-01 00:00:00') AND 
     unix_timestamp('2012-11-30 00:00:00') and cd_office = '016'
     GROUP BY cd_screen_function ORDER BY max_count DESC, cd_screen_function;

Ahora quiero agregar otra columna como access_count1 que consiste en un valor único para todos los 1300 filas y el valor será sum(max_count). max_count es una columna en mi tabla existente. ¿Cómo puedo hacer eso? Estoy tratando de modificar la tabla por este código ALTER TABLE test1 ADD COLUMNS (access_count1 int) set default sum(max_count);

InformationsquelleAutor user2532312 | 2013-10-25

1 Comentario

  1. 40

    Que no se puede agregar una columna con un valor predeterminado de la Colmena. Usted tiene el derecho sintaxis para agregar la columna ALTER TABLE test1 ADD COLUMNS (access_count1 int);, usted simplemente necesita para deshacerse de default sum(max_count). No hay cambios para que los archivos de la copia de la tabla que va a ocurrir como resultado de la adición de la columna. La colmena se encarga de la «falta de datos» mediante la interpretación de NULL como el valor de cada celda de esa columna.

    Así que ahora tu tienes el problema de la necesidad de rellenar la columna. Por desgracia, en la Colmena básicamente la necesidad de volver a escribir toda la tabla, esta vez con la columna pobladas. Puede ser más fácil para volver a ejecutar la consulta original con la nueva columna. O usted puede agregar la columna a la tabla que tiene ahora, a continuación, seleccione todas sus columnas de más valor para la nueva columna.

    Usted también tiene la opción de siempre COALESCE la columna a su predeterminada que desee y dejar NULL por ahora. Esta opción falla cuando se desea NULL a tener un significado distinto de su predeterminada que desee. También se requiere que depender siempre recordando a COALESCE.

    Si está muy confiado en sus habilidades para lidiar con los archivos de la copia de la Colmena, también se puede modificar directamente de ellos para añadir su defecto. En general yo recomendaría en contra de esto porque la mayoría de las veces será más lento y más peligroso. Puede haber algún caso en el que tiene sentido, así que he incluido esta opción para comprobar su integridad.

    • ¿Cómo funciona esto si quiero añadir varias columnas?
    • ALTER TABLE test1 ADD COLUMNS (access_count1 int,access_count2 date,access_count3 string, ...);
    • ¿El fin de la materia en la que podemos agregar la columna ?
    • Orden de las columnas no importa a menos que usted planea en la edición de los archivos de copia de tus datos directamente (no se recomienda).
    • Supongamos que tengo 1 Millón de conjunto de registros, Si puedo añadir columna se tarda más de rendimiento y tiempo de agregar en la Colmena QL? Desde MySQL lleva más tiempo y rendimiento para lograr esto.. También ¿Qué pasaría si el uso de Particiones de la columna de la Colmena de la tabla?

Dejar respuesta

Please enter your comment!
Please enter your name here