![](/img/trans.png)
[英]Can't create procedure with mysqli, but can with phpmyadmin?
[英]Can't create procedure phpMyAdmin MYSQL error
救命!! 我被卡住了,我不知道怎么了。
我正在使用MySql,但是它不会创建过程,我没有主意。
CREATE PROCEDURE sc_new_ord(IN inscid INT, IN incust_id INT, IN indeltype_id INT, IN duty_it INT, IN delcost INT, OUT ttmount INT, OUT outordid INT)
BEGIN
DECLARE ord_id INT;
DECLARE total INT;
INSERT INTO tbl_orders (customer_id, ship_type_id, rate_id, status) VALUES
(incust_id, indeltype_id, duty_it,0);
SELECT LAST_INSERT_ID() INTO inscid;
INSERT INTO tbl_ord_det (ord_id,inv_id, item, qtty, price)
SELECT ord_id, tbl_inventory.Inv_id, tbl_inventory.Item, tbl_shp_ct.qtty,
COALESCE(NULLIF(tbl_inventory.Offer_Price, 0), tbl_inventory.Price) AS price
FROM tbl_shp_ct
INNER JOIN tbl_inventory
ON tbl_shp_ct.inv_id = tbl_inventory.Inv_id
WHERE tbl_shp_ct.sc_id = inscid AND tbl_shp_ct.buy_now;
-- total amount
UPDATE tbl_orders
SET tt_mnt = (SELECT SUM(price * qtty)FROM tbl_ord_det WHERE ord_id = ord_id)
WHERE ord_id = ord_id;
CALL sc_empty (inscid);
SELECT (SUM(price * qtty) FROM tbl_ord_det WHERE ord_id = ord_id) as tt INTO total;
SELECT total, delcost, (total+delcost) INTO ttmount;
SELECT ord_id INTO outordid;
END
完全错误:MySQL说:文档
如果您使用的是mysql数据库,请尝试按以下方法操作,如果仍然遇到错误,则共享错误-
DELIMITER $$
CREATE PROCEDURE sc_new_ord(IN inscid INT, IN incust_id INT, IN indeltype_id INT, IN duty_it INT, IN delcost INT, OUT ttmount INT, OUT outordid INT)
BEGIN
DECLARE ord_id INT;
DECLARE total INT;
INSERT INTO tbl_orders (customer_id, ship_type_id, rate_id, status) VALUES
(incust_id, indeltype_id, duty_it,0);
SELECT LAST_INSERT_ID() INTO inscid;
INSERT INTO tbl_ord_det (ord_id,inv_id, item, qtty, price)
SELECT ord_id, tbl_inventory.Inv_id, tbl_inventory.Item, tbl_shp_ct.qtty,
COALESCE(NULLIF(tbl_inventory.Offer_Price, 0), tbl_inventory.Price) AS price
FROM tbl_shp_ct
INNER JOIN tbl_inventory
ON tbl_shp_ct.inv_id = tbl_inventory.Inv_id
WHERE tbl_shp_ct.sc_id = inscid AND tbl_shp_ct.buy_now;
-- total amount
UPDATE tbl_orders
SET tt_mnt = (SELECT SUM(price * qtty)FROM tbl_ord_det WHERE ord_id = ord_id)
WHERE ord_id = ord_id;
CALL sc_empty (inscid);
SELECT (SUM(price * qtty) FROM tbl_ord_det WHERE ord_id = ord_id) as tt INTO total;
SELECT total, delcost, (total+delcost) INTO ttmount;
SELECT ord_id INTO outordid;
END$$
DELIMITER ;
更改
SELECT (SUM(price * qtty) FROM tbl_ord_det WHERE ord_id = ord_id) as tt INTO total;
至
SELECT SUM(price * qtty) as tt FROM tbl_ord_det WHERE ord_id = ord_id INTO total;
通过将as tt
移动到正确的位置。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.