Я получаю ОШИБКУ 1172 (42000): результат состоял из нескольких строк в моей хранимой процедуре, когда я использую CALL submitOrder (10, 100, 1, @OrderId);
Что пошло не так в моем код? Цель состоит в том, чтобы использовать процедуру для вставки новой строки в таблицу заказов и новой строки в деталях заказа в таблицу order_items.
DELIMITER //
CREATE PROCEDURE submitOrder(
IN customerId INT,
IN productId INT,
IN qty INT,
OUT orderId INT)
BEGIN
DECLARE orderId, storeId, staffId, qty, customerId, productId INT;
DECLARE listPrice DECIMAL(10,2);
DECLARE discount DECIMAL(4,2);
SELECT MAX(order_id)+1 FROM orders INTO @orderId;
SELECT s.store_id
FROM stocks AS s
INNER JOIN products AS p USING (product_id)
WHERE p.product_id = s.product_id
ORDER BY s.quantity DESC
LIMIT 1
INTO @storeId;
SELECT staffs.staff_id
FROM staffs
INNER JOIN stores
WHERE staffs.store_id = stores.store_id
LIMIT 1
INTO @staffID;
SET @qty = 1;
SELECT products.product_id
FROM products
WHERE products.product_id = productId;
SELECT products.list_price
FROM products
INTO @listPrice;
INSERT INTO orders VALUES (
@orderId, @customerId, 1, CURDATE(), ADDDATE(CURDATE(), INTERVAL 7 day), NULL, @storeId, @staffId);
INSERT INTO order_items
VALUES (@orderId, 1, @productId, @qty, @listPrice,0);
END//
DELIMITER ;