sql >> Database >  >> RDS >> Mysql

Trigger herkent tabel niet (Trigger om inhoud van NEW.values ​​op te splitsen in meerdere rijen om in een andere tabel in te voegen)

als je alleen maar de strings probeert te doorbreken, kun je de 1 en 2 daarin gewoon zo hardcoderen en het is niet nodig om 1 en 2 in de getallentabel te pakken, aangezien die tabel momenteel hardgecodeerd is om toch 1 en 2 te bevatten.

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

sqlfiddle

maar toen merkte ik dat je SUBSTRING_INDEX() niet eens twee keer hoeft te bellen..dit werkt ook

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

sqlfiddle

UPDATE na het zien van je reactie, begrijp ik waarom je tabel numbers wilt maken dus je trigger zou zoiets als dit zijn. Eerst maak je tabel numbers die rijen bevat met n waarden van 1 tot 10 (mogelijk maximum aantal velden om in rijen op te splitsen). Vervolgens selecteert u uit numbers waarbij n waarden <=aantal velden in uw getal zijn. Pas vervolgens SUBSTRING_INDEX() functies toe om het veld op n positie te krijgen.

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 om trigger in actie te zien




  1. Waarden doorgeven aan MySQL IN-bewerking in door PDO voorbereide instructie?

  2. 2 manieren om rijen te retourneren die alleen alfanumerieke tekens bevatten in PostgreSQL

  3. Django mysql-fout

  4. Hiërarchische SQL-vraag