Несколько операторов вставки / обновления внутри триггера?

Вот метод, который дает вам все комбинации заданного размера из строки случайной длины. Подобно решению quinmars, но работает для разнообразного ввода и k.

Код можно изменить для обертывания, т. Е. 'Dab' из ввода 'abcd' wk = 3.

public void run(String data, int howMany){
    choose(data, howMany, new StringBuffer(), 0);
}


//n choose k
private void choose(String data, int k, StringBuffer result, int startIndex){
    if (result.length()==k){
        System.out.println(result.toString());
        return;
    }

    for (int i=startIndex; i<data.length(); i++){
        result.append(data.charAt(i));
        choose(data,k,result, i+1);
        result.setLength(result.length()-1);
    }
}

Выход для «abcde»:

abc abd abe acd ace ade bcd bce bde cde

16
задан Gavin 17 December 2009 в 13:00
поделиться

1 ответ

Из документов: Создать синтаксис триггера

trigger_stmt - это инструкция для выполняется при срабатывании триггера. Если вы хотите выполнить несколько операторы, используйте BEGIN ... END составная конструкция оператора. Эта также позволяет использовать тот же заявления, которые допустимы в сохраненные процедуры

CREATE TRIGGER testref BEFORE INSERT ON test1
  FOR EACH ROW BEGIN
    INSERT INTO test2 SET a2 = NEW.a1;
    DELETE FROM test3 WHERE a3 = NEW.a1;
    UPDATE test4 SET b4 = b4 + 1 WHERE a4 = NEW.a1;
  END;
30
ответ дан 30 November 2019 в 12:36
поделиться
Другие вопросы по тегам:

Похожие вопросы: