2017-05-28 127 views
0

我试图创建一个函数来插入表信息, 从数据库中自动实现的顺序id,最后我想返回它。MySQL创建函数

CREATE FUNCTION `New_Order`(
P_Customers_customer_id int(11), 
P_Employees_employee_id int(11), 
P_Shops_shop_id int(11), 
P_total double 
) RETURNS int(11) 
BEGIN 
INSERT INTO `shopsorders` 
      (`order_id`, 
      `Customers_customer_id`, 
      `Employees_employee_id`, 
      `Shops_shop_id`, 
      `total`, 
      `date`) 
     VALUES 
      (P_Customers_customer_id, 
      P_Employees_employee_id, 
      P_Shops_shop_id, 
      P_total, 
      sysdate()); 
RETURN LAST_INSERT_ID(); 
END 
+0

,你面对的是什么问题? – nilesh

+0

函数不能按预期工作,它不会将数据存储在数据库中 – Gist

回答

0

尝试使用DELIMTER选项&修改SQL数据:

DELIMITER // 
CREATE FUNCTION `New_Order`(
P_Customers_customer_id int(11), 
P_Employees_employee_id int(11), 
P_Shops_shop_id int(11), 
P_total double 
) RETURNS int(11) 
modifies sql data 
BEGIN 
INSERT INTO `shopsorders` 
      (`order_id`, 
      `Customers_customer_id`, 
      `Employees_employee_id`, 
      `Shops_shop_id`, 
      `total`, 
      `date`) 
     VALUES 
      (P_Customers_customer_id, 
      P_Employees_employee_id, 
      P_Shops_shop_id, 
      P_total, 
      sysdate()); 
return LAST_INSERT_ID(); 
END // DELIMITER ;