Используйте функцию re.escape()
для этого:
escape (string)
Возвращаемая строка со всеми неалфавитными спицами; это полезно, если вы хотите сопоставить произвольную литеральную строку, которая может иметь в ней метасимволы регулярного выражения.
blockquote>Простейший пример, поиск любого присутствия предоставленной строки, необязательно сопровождаемого 's', и вернуть объект соответствия.
def simplistic_plural(word, text): word_or_plural = re.escape(word) + 's?' return re.match(word_or_plural, text)
Тело вашего триггера 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 обновят строку только один раз, даже если объединение будет указывать на необходимость нескольких обновлений.