Leer matriz JSON en MYSQL

No puedo extraer datos determinados en un JSON.

Tengo este JSON:

[{"id":1, "type":2}, {"id":2, "type":1}]

Quiero recuperar todos los identificadores en una variable en mi procedimiento almacenado.

CREATE DEFINER=`root`@`%` PROCEDURE `new_procedure`(a JSON)
BEGIN
   SELECT JSON_TYPE(a);
   -- return ARRAY

   SELECT a,JSON_EXTRACT(a,'$.id');
END

a devolver el JSON, peroJSON_EXTRACT esta vacio

Incluso pruebo guardar el JSON en una tabla temporal

CREATE DEFINER=`root`@`%` PROCEDURE `new_procedure`(a JSON)
BEGIN

   SELECT JSON_TYPE(a);
   DROP TEMPORARY TABLE IF EXISTS jsonTemporary;

   CREATE TEMPORARY TABLE jsonTemporary SELECT a;

   SELECT *,a->'$.id',a->>'$.id',JSON_EXTRACT(a,'$.id') FROM jsonTemporary;
END

Pero el resultado es el mismo, solo la primera columna devuelve algo.

Respuestas a la pregunta(1)

Su respuesta a la pregunta