2017-08-21 35 views
2

所以我有这个程序写在MySQL中,谁能告诉我为什么它不工作?为什么我的程序不在MySQL中工作

​​

这是错误消息:

You have an error in your SQL syntax; check the manual that corresponds 
to your MySQL server version for the right syntax to use near 'end' at line 1 
+0

您需要定义一个不同的分隔符才能使用。请参阅mysql手册:https://dev.mysql.com/doc/connector-net/en/connector-net-tutorials-stored-procedures.html – jeff

+0

值字段名称需要数学参数名称。 –

回答

3
DROP PROCEDURE IF EXISTS `add_Order`; 
DELIMITER $$ 
CREATE PROCEDURE `add_Order`(
    IN custid int, 
    IN productid int, 
    IN storeid int, 
    IN empid int, 
    IN quantity int, 
    IN R_payment char(10),IN date date 
) 
BEGIN 
    INSERT INTO Orders(custid, empid, storeid, orderdate) values (IN_cust,IN_empid, IN_storeid, IN_date); 
    INSERT INTO Order_Product(orderid, productid, quantity, RegisterPayment) values (IN_orderid, IN_productid, IN_quantity, IN_R_payment); 
END 
$$ 

DELIMITER ; 

参考: https://dev.mysql.com/doc/connector-net/en/connector-net-tutorials-stored-procedures.html

您也可以使用这个工具: http://tools.knowledgewalls.com/mysqlcreateprocedure

祝您好运!

2

使用DELIMITER //

DELIMITER $$ 
DROP PROCEDURE IF EXISTS `add_Order` $$ 
    create procedure add_Order(IN custid int, IN productid int, IN storeid int, IN 
    empid int, IN quantity int, 
    IN R_payment char(10), IN date date) 
    begin 
    insert into Orders(custid, empid, storeid, orderdate) values (IN_cust, 
    IN_empid, IN_storeid, IN_date); 
    insert into Order_Product(orderid, productid, quantity, RegisterPayment) 
    values (IN_orderid, IN_productid, IN_quantity, IN_R_payment); 
    end $$ 
DELIMITER ; 
相关问题