si solo está tratando de dividir las cadenas, puede codificar el 1 y el 2 de esta manera y no es necesario tomar el 1 y el 2 en la tabla de números, ya que esa tabla está actualmente codificada para contener el 1 y el 2 de todos modos.
SET @V = SUBSTRING_INDEX(SUBSTRING_INDEX(new.Vu, ' ', 1), ' ', -1),
@U = SUBSTRING_INDEX(SUBSTRING_INDEX(new.Vu, ' ', 2), ' ', -1);
pero luego me di cuenta de que ni siquiera necesitas llamar a SUBSTRING_INDEX() dos veces... esto también funciona
SET @V = SUBSTRING_INDEX(new.Vu, ' ', 1),
@U = SUBSTRING_INDEX(new.Vu,' ', -1);
ACTUALIZAR después de ver tu comentario, veo por qué querías crear la tabla numbers
entonces su activador sería algo como esto. Primero crea la tabla numbers
que contiene filas que tienen n valores del 1 al 10 (número máximo posible de campos para dividir en filas). Luego selecciona entre numbers
donde n valores son <=número de campos en su número. Luego aplique las funciones SUBSTRING_INDEX() para obtener el campo en la posición n.
create table numbers
select 1 as n
union select 2
union select 3
union select 4
union select 5
union select 6
union select 7
union select 8
union select 9
union select 10;
CREATE TRIGGER `edit2` AFTER INSERT
ON `table1`
FOR EACH ROW BEGIN
INSERT INTO table2 (number,player,team,position)
SELECT
SUBSTRING_INDEX(SUBSTRING_INDEX(NEW.number,' ',n),' ',-1) as number,
NEW.player as player,
SUBSTRING_INDEX(SUBSTRING_INDEX(NEW.team,', ',n),', ',-1) as team,
SUBSTRING_INDEX(SUBSTRING_INDEX(NEW.position,' ',n),' ',-1) as position
FROM
numbers n
WHERE LENGTH(NEW.number)
- LENGTH(REPLACE(NEW.number,' ',''))
+ 1 >= n.n;
END
sqlfiddle para ver el disparador en acción