2010-05-11 19 views

Respuesta

10

Lo sentimos, no se puede autoincrementar en una VISTA (sin embargo, puede hacer esto en un Procedimiento almacenado).

Desde el MySQL Manual:

Una vista definición está sujeta a las siguientes restricciones : El instrucción SELECT no puede referirse al sistema o variables de usuario.

+0

Gracias por la respuesta! Adiviné tanto por falta de respuestas ... –

2

Prueba de esto,

CREATE VIEW view_wp_postmeta AS(
SELECT (
    SELECT count(meta_id) +1 
    FROM wp_postmeta 
    AS vtmp  
    WHERE vtmp.meta_id < pm.meta_id 
) AS vtmp_id, pm. * 
FROM wp_postmeta AS pm 
ORDER BY pm.meta_id DESC 
) 

En WordPress meta_id = AUTO_INCREMENT en la TABLA wp_postmeta, i crear una vista de esto, en la que se comporta como view_id AUTO_INCREMENT con el fin DESC.

Por ejemplo, En TABLA wp_postmeta -> meta_id [3,5,6,10,2,11] que aparecería en VISTA view_wp_postmeta -> view_id [6,5,4 , 3,2,1]

2

Sé que esta pregunta es antigua, pero por si otros se encuentran con esta pregunta, hay otra alternativa.

IMPORTANTE: Esta alternativa es válida siempre y cuando el incremento automático no es realmente importante, y por lo que sólo necesita un identificador único para la vista de filas:

Puede utilizar la función de UUID(), que le proporciona una identificador alfanumérico único. Consulte la documentación en mysql-reference-manual

Por lo tanto se podría crear una vista como esta:

Create view my-view AS 
Select UUID() as 'id', t.name, t.value 
from table t 
.... 
+0

Hay una desventaja importante con esta solución: los UUID cambian cada vez que accede a la vista. – Veve

Cuestiones relacionadas