sql >> Databáze >  >> RDS >> Mysql

Spouštěč nerozpozná tabulku (spouštěč pro rozdělení obsahu NEW.values ​​do více řádků pro vložení do jiné tabulky)

pokud se jen pokoušíte vylomit řetězce, můžete tam takto napevno zakódovat 1 a 2 a není třeba chytat 1 a 2 v tabulce čísel, protože tato tabulka je v současné době napevno zakódována tak, aby obsahovala 1 a 2.

SET @V = SUBSTRING_INDEX(SUBSTRING_INDEX(new.Vu, ' ', 1), ' ', -1),
    @U = SUBSTRING_INDEX(SUBSTRING_INDEX(new.Vu, ' ', 2), ' ', -1);

sqlfiddle

ale pak jsem si všiml, že ani nemusíš volat SUBSTRING_INDEX() dvakrát..tohle taky funguje

    SET @V = SUBSTRING_INDEX(new.Vu, ' ', 1),
        @U = SUBSTRING_INDEX(new.Vu,' ', -1);

sqlfiddle

AKTUALIZACE po zhlédnutí vašeho komentáře chápu, proč jste chtěli vytvořit tabulku numbers takže váš spouštěč by byl něco takového. Nejprve vytvořte tabulku numbers který obsahuje řádky, které mají n hodnot od 1 do 10 (možný maximální počet polí k rozdělení do řádků). Potom vyberete z numbers kde n hodnot je <=počet polí ve vašem čísle. Potom použijte funkce SUBSTRING_INDEX() k získání pole na pozici 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, abyste viděli spouštěč v akci




  1. PostgreSQL 13:Nenechte sloty zabít vašeho primárního

  2. je možné použít ajax, jquery stránku s cronem?

  3. Závažná chyba:Volání nedefinované funkce session_register()

  4. Jak bude fungovat slíbený modul mysql s NodeJS?