Как получить последнюю вставленную запись в таблице?

Все, кого я делаю, - проект базы данных инвентаризации для целей обучения. я новичок в разработке, пожалуйста, помогите мне

у меня есть две таблицы

StockRecords(InventoriID, ItemID, Quantity)

Purchase_Details(SupplierID, supplier_invoice, itemID, quantity, purchase_date)

Мне нужно обновлять инвентарь всякий раз, когда приобретается новый товар. Теперь мне нужно вызвать триггер dml, но я не совсем понимаю, как получить последнее вставленное значение в таблице.

Я написал процедуру, которую намереваюсь вызвать в триггере для обновления таблицы StockRecord, но мне нужно найти последнее вставленное значение в таблице Purchase_Detail, чтобы я мог проанализировать itemID и количество последней записи в моей процедуре, чтобы обновить таблицу записей.

1 ответ

Решение

Есть только один столбец, который выглядит как кандидат на это: purchase_date, если он представляет последнюю дату, когда что-то было куплено. В этом случае вам нужно найти строку с MAX(purchase_date), Однако, если в этом столбце хранится несколько строк с одинаковым значением, вам не повезло.

Другими словами, вам нужно изменить текущую модель данных. Похоже, что purchase_details таблица не имеет первичного ключа. Если это так, и если он был заполнен последовательностью, то у вас будет этот столбец (MAX(primary_key_column)).

С другой стороны, говоря, что задействован триггер: если он срабатывает для каждой строки, то вы можете использовать: новые (или: старые, в зависимости от того, что вы делаете) идентификаторы псевдозаписи и - в основном - не заботятся о последнем строка вставлена ​​- вы будете иметь дело с текущей.

Что-то вроде этого:

create or replace trigger trg_ai_purdet
  after insert on purchase_details
  for each row
begin
  insert into stockrecords (inventoriid, itemid, quantity)
  values (some_seq.nextval, :new.itemid, :new.quantity);
end;

Это также означает, что вам, вероятно, не нужна упомянутая вами "процедура", если единственная цель - вставить строку в STOCKRECORDS Таблица.

Другие вопросы по тегам