【发布时间】:2009-04-15 19:32:14
【问题描述】:
好的,这只是我编写的第二个存储过程。我想你会明白的,我正在尝试关闭信用额度,以及所有发票、费用、票据等。但我得到一个语法错误。 目标是调用 close_account_proc(398985994)
DELIMITER $$
CREATE
PROCEDURE `cc`.`close_account_proc`(cid INT)
@uid_usr := uid_usr FROM credit_acc WHERE type_acc = 'init' AND credit_used_acc = cid;
UPDATE credit_acc SET status_acc = 'closed', void_date_acc = NOW() WHERE credit_used_acc = cid;
UPDATE payment_acc SET status_acc = 'voided', void_date_acc = NOW() WHERE creditid_acc = cid;
UPDATE sbal_sbl SET status_sbl = 'voided', void_date_sbl = NOW() WHERE credit_used_acc = cid;
INSERT INTO notes_not SET uid_usr = @uid_usr, initials_not = 'SYS',status_not = 'complete', date_not = NOW(), text_not = 'Closed credit line '.cid;
UPDATE invoices_inv SET status_inv = 'voided', void_date_inv = NOW() WHERE credit_used_acc = cid;
BEGIN
END$$
DELIMITER ;
所以,无论如何,我得到了这个错误: 您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 5 行的 '@uid_usr := uid_usr from credit_acc where type_acc = 'init' and credit_used_acc '附近使用正确的语法。
有什么想法吗?
【问题讨论】: