#mysql #sql
#mysql #sql
Вопрос:
я только что узнал, как создать базу данных здесь. Итак, у меня есть проект по созданию базы данных для инвентаризации товаров, и я использую phpmyadmin. Моя проблема в том, что я хочу, чтобы значение в столбце «количество» добавлялось по значению в столбце «jumlah_masuk» и минус по значению в столбце «jumlah_keluar», тогда результат будет в столбце «saldo_akhir».
я выполнил этот запрос:
SELECT *, (quantity jumlah_masuk)-jumlah_keluar FROM dbinventory.tbbarang;
UPDATE tbbarang SET saldo_akhir=(quantity jumlah_masuk)-jumlah_keluar WHERE ID_barang
и я получил такой результат:
quantity jumlah_masuk jumlah_keluar saldo_akhir
-------- ------------ ------------- -----------
100 50 25 125
и я это сделал. но, если я хочу ввести новый элемент. значение из ‘quantity’,’jumlah_masuk’,’jumlah_keluar’ запрос не выполнен.
я хочу, чтобы каждый раз, когда я вводил новый элемент, значение из столбца «количество» и так далее выполнялось автоматически.
итак, что мне делать?
Комментарии:
1. Зачем хранить результаты формулы, когда ее можно вычислить в любое время, когда вы запускаете запрос? Это намного надежнее и менее трудоемко на сервере, чем настройка триггеров insert и update для сохранения результата и сохранения его в столбце. Если вы действительно хотите это сделать, вам нужно будет создать два триггера: on для after insert и еще один для after update. Триггеры поиска для синтаксиса и примеров
Ответ №1:
Вместо триггеров хорошим решением является сгенерированный столбец.
ALTER TABLE tbbarang DROP saldo_akhir,
ADD saldo_akhir INT AS (quantity jumlah_masuk - jumlah_keluar)
Комментарии:
1. я только что попробовал этот запрос, но вычисление сохраняется в столбце «количество». Я хочу, чтобы результат был сохранен в столбце ‘saldo_akhir’ @danblack