Как я могу выполнить эту операцию MySQL Trigger?

Используйте функцию re.escape() для этого:

4.2.3 re Содержание модуля

escape (string)

Возвращаемая строка со всеми неалфавитными спицами; это полезно, если вы хотите сопоставить произвольную литеральную строку, которая может иметь в ней метасимволы регулярного выражения.

blockquote>

Простейший пример, поиск любого присутствия предоставленной строки, необязательно сопровождаемого 's', и вернуть объект соответствия.

def simplistic_plural(word, text):
    word_or_plural = re.escape(word) + 's?'
    return re.match(word_or_plural, text)

-1
задан imDevD 18 January 2019 в 17:08
поделиться

1 ответ

Тело вашего триггера UPDATE для OrdersTable должно выглядеть примерно так:

IF NEW.Status = 1 
   AND OLD.Status <> 1 --Edit: Updates on other fields should not adjust quantities
BEGIN
    UPDATE TrackInventoriesTable AS ti 
    INNER JOIN PurchasedProductsTable AS pp ON ti.ItemSku = pp.ItemSku
    SET ti.OrderedQty = ti.OrderedQty - pp.Qty
    WHERE ti.CustomerId = NEW.CustomerId AND pp.OrderId = NEW.ID
    ;
END

Однако, если в одном заказе может быть несколько записей для одного и того же sku, это, вероятно, не будет работать; если я правильно помню, запросы MySQL UPDATE обновят строку только один раз, даже если объединение будет указывать на необходимость нескольких обновлений.

0
ответ дан Uueerdo 18 January 2019 в 17:08
поделиться
Другие вопросы по тегам:

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