如何使用插入创建存储过程?

时间:2013-05-29 23:58:58

标签: mysql sql stored-procedures

我在MySQL中创建了下一个表:

CREATE TABLE Compras(
    Compra              INT               NOT NULL,
    Proveedor           INT               NOT NULL,
    FormaDePago         varchar(10),
    Saldo               DECIMAL(15, 3),
    Fecha_Compra        DATE              NOT NULL,
    Condicion_Compra    VARCHAR(10)       NOT NULL,
    Deposito            INT               NOT NULL,
    PRIMARY KEY (Compra)
)ENGINE=MYISAM;

当我尝试创建下一个存储过程时出错:

CREATE PROCEDURE comprarx(IN pk INT, 
                         IN proveedor INT,
                         IN pago varchar(10),
                         IN saldo decimal(15,3),
                         IN fecha DATE,
                         IN condicion_compra varchar(10),
                         IN deposito INT)
BEGIN
    INSERT INTO Compras
    VALUES(pk, proveedor, pago, saldo, fecha, condicion_compra, deposito );
END

我不知道我的错误是什么。

1 个答案:

答案 0 :(得分:3)

除了DELIMITER之外,我在代码中看不到任何错误。试试这个,

DELIMITER $$

CREATE PROCEDURE comprar(IN pk INT, 
                         IN proveedor INT,
                         IN pago varchar(20),
                         IN saldo INT,
                         IN fecha DATE,
                         IN condicion_compra varchar(10),
                         IN deposito INT)
BEGIN

        INSERT INTO Compras
        VALUES(pk, proveedor, pago, saldo, fecha, condicion_compra, deposito );

END $$

DELIMITER ;