mySQL trigger
Может потребоваться не один триггер, а даже два. На INSERT и на UPDATE таблицы.
Можно AFTER, потому что запись не предотвращается.
Только надо не для каждого ряда, а для одного, который вставляется или изменяется.
Проверять вашу величину.
IF <ваше условие> THEN <что делать>
Синтаксис триггеров для MySQL
https://dev.mysql.com/doc/refman/8.0/en/trigger-syntax.html
Может потребоваться не один триггер, а даже два. На INSERT и на UPDATE таблицы.
Можно AFTER, потому что запись не предотвращается.
Только надо не для каждого ряда, а для одного, который вставляется или изменяется.
Проверять вашу величину.
IF <ваше условие> THEN <что делать>
Синтаксис триггеров для MySQL
https://dev.mysql.com/doc/refman/8.0/en/trigger-syntax.html
Если начать с малого. Как прописать if до THEN?
IF col2.tbl1 < 5 THENкак сюда вписать id1?
как сюда вписать id1?
Это число или переменная или ещё один столбец?
[quote=sangraf]
как сюда вписать id1?
Это число или переменная или ещё один столбец?[/quote]
id это столбец.
Нужно после if указать адрес конкретной ячейки из таблицы(tbl1) - столбец(col2) - столбец(id)id=1
id | col1 | col2 | col3 |
1 | | X | |
ячейку где стоит X
Нужно после if указать адрес конкретной ячейки из таблицы(tbl1) - столбец(col2) - столбец(id)id=1
Так и пишите - id или - tbl.id
По идее, будет отниматься id из этой же строки.
Но!
Зачем отнимать id ума не приложу.
id ведь генерируется автоматически?
Каков смысл этого всего?
[quote="sangraf"]Нужно после if указать адрес конкретной ячейки из таблицы(tbl1) - столбец(col2) - столбец(id)id=1
Так и пишите - id или - tbl.id
По идее, будет отниматься id из этой же строки.
Но!
Зачем отнимать id ума не приложу.
id ведь генерируется автоматически?
Каков смысл этого всего?[/quote]
это не вычитание, это указание адреса ячейки. Те можно переписать например так: таблицы(tbl1)/столбец(col2)/столбец(id)id=1
не деление.
или так: таблицы(tbl1) Ж столбец(col2) Ж столбец(id)id=1
это не вычитание, это указание адреса ячейки.
Хотите разнийу из разных строк таблицы?
Легко! Пишите что-то навроде
BEGIN
SELECT @id1 = SELECT id FROM tbl WHERE var = 1
UPDATE tbl SET col = col - @id1
END
Но зачем?
