鉴于最近的一个项目里自己后台搭的和shi一样,不得不转换一些操作到存储过程上,
但是,见鬼的地方来了——
360文库和百度搜索果然靠不住,mysql的语法也是有点鬼,
谨以此文祭奠我浪费的一个下午
CREATE PROCEDURE Update_Company
(INOUT _CompanyId INT,_Name VARCHAR(100),_Address VARCHAR(200),
_Scale INT,_RegisterNo CHAR(18),_License VARCHAR(300),_Corporate CHAR(20),
_Introduction VARCHAR(600),_BussinessScopes VARCHAR(600),_UserId INT )
BEGIN
DECLARE tempId INT;
DECLARE t_error INTEGER DEFAULT 0;
DECLARE CONTINUE HANDLER FOR SQLEXCEPTION SET t_error =1;
START TRANSACTION;
UPDATE company
SET Status=0
WHERE CompanyId= _CompanyId;
INSERT INTO company (Name,Address,Scale,RegisterNo,License,Corporate,Introduction,BusinessScope,Status,UserId)
VALUE(_Name,_Address,_Scale,_RegisterNo,_License,_Corporate,_Introduction,_BussinessScopes,1,_UserId);
SET tempId =last_insert_id();
UPDATE company_apply_record
SET CompanyId= tempId
WHERE CompanyId= _CompanyId;
UPDATE recruitment
SET CompanyId= tempId
WHERE CompanyId= _CompanyId;
SET _CompanyId = tempId;
IF t_error <>0
THEN ROLLBACK;
ELSE COMMIT;
END IF;
SELECT t_error;
END;
网友评论