2013-05-29 4 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 ; 
Смежные вопросы