2013-05-29 37 views
1

我创建的下一个表在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 

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

+0

您的存储过程输入参数的数据类型与表中的列不同。 – sgeddes

+0

@sgeddes没有那不是︰P –

+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 ;