ТРИГГЕР НА УЧРЕЖДЕНИЕ после ВСТАВКИ - PullRequest
1 голос
/ 28 марта 2019

Я пытаюсь создать триггер, который увеличивает счет карты в таблице фракций после ВСТАВКИ в карту, если строка faction.factionname соответствует cards.faction ВСТАВКИ.

до сих пор я пробовал несколько разных методов, но код ниже - мое самое близкое предположение

create table cards(
    cardid int not null,
    faction varchar(255) not null,
    primary key(cardid)
);

create table faction(
    factionname varchar(255) not null,
    cardcount int not null,
    primary key(factionname)
);


create trigger updatecountinsert
    after insert on cards
    for each row
begin
    update faction
    set cardcount=carcount+1
    where last_insert_id().faction=faction.factionname
end; 

В основном, если я вставлю значения (11, 'x') x будет фракцией, если в строке фракции есть factionname = x триггер должен увеличить "карточный отсчет" этой строки на 1

1 Ответ

0 голосов
/ 28 марта 2019
DELIMITER $$

CREATE TRIGGER updatecountinsert
AFTER INSERT ON cards
FOR EACH ROW
BEGIN
   -- NEW is used to qualify references values of the row that was just inserted
   -- e.g. NEW.faction is a reference to the value in the faction column
   UPDATE faction f
      SET f.cardcount = f.cardcount + 1
    WHERE f.factionname = NEW.faction ;
END;
$$

DELIMITER ;
...