Fórum procedimento armazenado em mysql #469861
12/02/2014
0
tenho a seguinte base de dado e a tabela para a criação SP em mysql:
CREATE DATABASE Db_CadastroLivro;
USE Db_CadastroLivro;
CREATE TABLE Tb_Livro
(
CodLivro INT PRIMARY KEY AUTO_INCREMENT NOT NULL,
TituloLivro VARCHAR(100) NOT NULL,
ISBNLivro VARCHAR(30)UNIQUE NOT NULL,
AnoEdicaoLivro DATE NOT NULL
);
crio o procedimento (para inserir dados )com DELIMITER //, o que acontece é ele dá um erro no ultimo DELIMITER, gostaria de saber porque dá esse ERRO. O código é o seguinte:
DELIMITER //
CREATE PROCEDURE SP_CADASTROLIVRO
(IN
TituloLivro VARCHAR(100),
ISBNLivro VARCHAR(30),
AnoEdicaoLivro DATE
)
BEGIN
INSERT INTO Tb_Livro
(
TituloLivro,
ISBNLivro,
AnoEdicaoLivro
)
VALUES
(
TituloLivro,
ISBNLivro,
AnoEdicaoLivro
);
END //
DELIMITER;
mas quando uso o mesmo procedimento só que sei o ultimo DELIMITER ele parece que dá serto, mas quando tento chama-lo (CALL NOME_PROCEDIMENTO), dá uma mensagem de ERRO dizendo o procedimento não existe, onde está o ERRO deste procedimento?
OBRIGADO PELA AJUDA
Anacleto Linux
CREATE DATABASE Db_CadastroLivro;
USE Db_CadastroLivro;
CREATE TABLE Tb_Livro
(
CodLivro INT PRIMARY KEY AUTO_INCREMENT NOT NULL,
TituloLivro VARCHAR(100) NOT NULL,
ISBNLivro VARCHAR(30)UNIQUE NOT NULL,
AnoEdicaoLivro DATE NOT NULL
);
crio o procedimento (para inserir dados )com DELIMITER //, o que acontece é ele dá um erro no ultimo DELIMITER, gostaria de saber porque dá esse ERRO. O código é o seguinte:
DELIMITER //
CREATE PROCEDURE SP_CADASTROLIVRO
(IN
TituloLivro VARCHAR(100),
ISBNLivro VARCHAR(30),
AnoEdicaoLivro DATE
)
BEGIN
INSERT INTO Tb_Livro
(
TituloLivro,
ISBNLivro,
AnoEdicaoLivro
)
VALUES
(
TituloLivro,
ISBNLivro,
AnoEdicaoLivro
);
END //
DELIMITER;
mas quando uso o mesmo procedimento só que sei o ultimo DELIMITER ele parece que dá serto, mas quando tento chama-lo (CALL NOME_PROCEDIMENTO), dá uma mensagem de ERRO dizendo o procedimento não existe, onde está o ERRO deste procedimento?
OBRIGADO PELA AJUDA
Anacleto Linux
Anacleto Linux
Curtir tópico
+ 0
Responder
Posts
13/02/2014
William
Colega testei dessa maneira no MySQL 5.6 e funcionou normalmente:
DELIMITER $$ CREATE PROCEDURE `SP_CADASTROLIVRO`(IN TituloLivro VARCHAR(100), ISBNLivro VARCHAR(30), AnoEdicaoLivro DATE ) BEGIN INSERT INTO Tb_Livro ( TituloLivro, ISBNLivro, AnoEdicaoLivro ) VALUES ( TituloLivro, ISBNLivro, AnoEdicaoLivro ); END$$ DELIMITER ;
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)