1
프로 시저 문제 : 업데이트되지 않습니다MySQL을 - 내가 2 개 테이블이있어
CREATE PROCEDURE transfer
(IN Value_IN float,
IN When_IN int(4),
IN AccountTo_IN varchar(26),
IN AccountFrom_IN varchar(26),
IN Name_IN varchar(30))
NOT DETERMINISTIC
SQL SECURITY DEFINER
COMMENT ''
INSERT INTO deal
(value, when, AccountTo, AccountFrom, Name)
VALUES (Value_IN, When_IN, AccountTo_IN, AccountFrom_IN, Name_IN);
UPDATE account SET Value=(Value+Value_IN) WHERE AccountNumber=AccountTo_IN;
UPDATE account SET Value=(Value-Value_IN) WHERE AccountNumber=AccountFrom_IN;
데이터가 '거래'하지만 '계정'테이블에 넣어 : 나는 프로 시저를 설정
`deal` (`value`, `when`, `AccountTo`, `AccountFrom`, `Name`)
`account` (`AccountNumber`, `Value`)
을
편집 : 답변
감사합니다. 나는 당신이 시작해야 할 수 있습니다 생각
CREATE DEFINER=`root`@`localhost` PROCEDURE `transfer`(
Value_IN FLOAT,
When_IN DATE,
AccountTo_IN VARCHAR(26),
AccountFrom_IN VARCHAR(26),
Name_IN VARCHAR(30))
BEGIN
INSERT INTO deal
(value, when, AccountTo, AccountFrom, Name)
VALUES (value_IN, When_IN, AccountTo_IN, AccountFrom_IN, Name_IN);
UPDATE account SET Value = Value+Value_IN) WHERE AccountNumber = AccountTo_IN;
UPDATE account SET Value = Value-Value_IN) WHERE AccountNumber = AccountFrom_IN;
END;
마지막 두 줄에 백틱 ''으로 둘러싼 계정을 사용해보십시오. SO에서 벗어날 방법을 모르기 때문에 예제가 없습니다. . . – jchapa
'BEGIN'과'END'가'INSERT' 전에 있고 마지막에'UPDATE'가 끝난 후에'BEGIN' /'END'에 대해 –
+1이 필요할 것 같습니다. 어떤 DBMS를 사용하고 있습니까? 저장 프로 시저 구문은 다양합니다. MySQL을 추측하고 있으므로 다음 예제를 살펴 보시기 바랍니다. http://dev.mysql.com/doc/refman/5.0/en/stored-programs-defining.html –