Uander Postado Setembro 20, 2012 Denunciar Share Postado Setembro 20, 2012 /* desconsidere os comentarios e as # */CREATE DATABASE BRINCANDO;USE BRINCANDO;#DROP TABLE USUARIO;CREATE TABLE USUARIO(ID_USUARIO INT AUTO_INCREMENT NOT NULL,USUARIO VARCHAR(30),SENHA VARCHAR(20),PRIMARY KEY(ID_USUARIO));/*SELECT * FROM USUARIO;*//*(Um simples insert para testar a tabela, depois acabei comentando ele)INSERT INTO USUARIO(USUARIO, SENHA)VALUES('UANDER','123');*/#DROP PROCEDURE INSEREUSUARIO;DELIMITER $$CREATE PROCEDURE INSEREUSUARIO(IN PRO_USU_NOME VARCHAR(30),IN PRO_USU_SENHA VARCHAR(20))BEGIN IF(NOME='') THEN SELECT 'INSIRA NOME' AS Msg; ELSE IF(SENHA='') THEN SELECT 'INSIRA SENHA' AS Msg; ELSE INSERT INTO USUARIO (NOME, SENHA) VALUES(PRO_USU_NOME, PRO_USU_SENHA); END IF; END IF;SELECT 'DADOS INSERIDOS COM SUCESSO' AS Msg;END $$DELIMITER ;CALL INSEREUSUARIO('UANDER2','123456');---------------------------------------------------------CREATE TABLE USUARIO -- 0 ROW(S) AFECTED 0.078 SECINSERT INTO USUARIO (USUARIO, SENHA) 1 ROW(S) EFFECTED 0.048 SECCOMENTO O INSERT EXECUTO O BLOCO DA PROCEDURE INSERE USUARIO = ERROR CODE:1050 'USUARIO' ALREADY EXISTS 0.000 SECalguém PODERIA AJUDAR?ABRAÇO Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 jrodrigues_ Postado Setembro 20, 2012 Denunciar Share Postado Setembro 20, 2012 /* desconsidere os comentarios e as # */CREATE DATABASE BRINCANDO;USE BRINCANDO;#DROP TABLE USUARIO;CREATE TABLE USUARIO(ID_USUARIO INT AUTO_INCREMENT NOT NULL,USUARIO VARCHAR(30),SENHA VARCHAR(20),PRIMARY KEY(ID_USUARIO));/*SELECT * FROM USUARIO;*//*(Um simples insert para testar a tabela, depois acabei comentando ele)INSERT INTO USUARIO(USUARIO, SENHA)VALUES('UANDER','123');*/#DROP PROCEDURE INSEREUSUARIO;DELIMITER $$CREATE PROCEDURE INSEREUSUARIO(IN PRO_USU_NOME VARCHAR(30),IN PRO_USU_SENHA VARCHAR(20))BEGIN IF(NOME='') THEN SELECT 'INSIRA NOME' AS Msg; ELSE IF(SENHA='') THEN SELECT 'INSIRA SENHA' AS Msg; ELSE INSERT INTO USUARIO (NOME, SENHA) VALUES(PRO_USU_NOME, PRO_USU_SENHA); END IF; END IF;SELECT 'DADOS INSERIDOS COM SUCESSO' AS Msg;END $$DELIMITER ;CALL INSEREUSUARIO('UANDER2','123456');---------------------------------------------------------CREATE TABLE USUARIO -- 0 ROW(S) AFECTED 0.078 SECINSERT INTO USUARIO (USUARIO, SENHA) 1 ROW(S) EFFECTED 0.048 SECCOMENTO O INSERT EXECUTO O BLOCO DA PROCEDURE INSERE USUARIO = ERROR CODE:1050 'USUARIO' ALREADY EXISTS 0.000 SECalguém PODERIA AJUDAR?ABRAÇOMeu camarada, na sua procedure você terá que alterar o nome da coluna NOME, pois na tabela que você criou não possui essa coluna e sim USUARIO insert into USUARIO(NOME, SENHA)values(PRO_USU_NOME, PRO_USU_SENHA);Abraços ;) Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Uander Postado Setembro 20, 2012 Autor Denunciar Share Postado Setembro 20, 2012 (editado) Opa, realmente, ótima observação.porem ainda existe acusação de erro na coluna usuario.pesquisei algumas coisas e não achei nada relacionado tambem, criei até outro bd, sem sucesso tambem.=/, a procedure agora executa com sucesso, esta com erro na hora de executa-la.tanto é que no comando show procedure insereusuario é possivel visualiza-la.abraçoDROP DATABASE IF EXISTS BRINCANDO;CREATE DATABASE BRINCANDO;USE BRINCANDO;DROP TABLE IF EXISTS USUARIO;CREATE TABLE USUARIO(ID_USUARIO INT AUTO_INCREMENT NOT NULL,USUARIO VARCHAR(30),SENHA VARCHAR(20),PRIMARY KEY(ID_USUARIO));/*INSERT INTO USUARIO(USUARIO, SENHA)VALUES('UANDER','123');*//*SELECT * FROM USUARIO;*/DROP PROCEDURE IF EXISTS INSEREUSUARIO;DELIMITER $$CREATE PROCEDURE INSEREUSUARIO(IN PRO_USU_USUARIO VARCHAR(30),IN PRO_USU_SENHA VARCHAR(20))BEGIN IF(USUARIO = '') THEN SELECT 'INSIRA NOME' AS Msg; ELSE IF(SENHA='') THEN SELECT 'INSIRA SENHA' AS Msg; ELSE INSERT INTO USUARIO (USUARIO, SENHA) VALUES(PRO_USU_USUARIO, PRO_USU_SENHA); END IF; END IF; SELECT 'DADOS INSERIDOS COM SUCESSO' AS Msg;END $$DELIMITER ;CALL INSEREUSUARIO('UANDER','TESTE');SELECT * FROM USUARIO;SHOW PROCEDURE STATUS;--------------------------- Editado Setembro 21, 2012 por Uander Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Uander Postado Setembro 21, 2012 Autor Denunciar Share Postado Setembro 21, 2012 tipo de erro0 02:44:53 CALL INSEREUSUARIO('UANDER','TESTE') Error Code: 1054. Unknown column 'USUARIO' in 'field list' Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Denis Courcy Postado Setembro 25, 2012 Denunciar Share Postado Setembro 25, 2012 Tente assim:DELIMITER $$ DROP PROCEDURE IF EXISTS `brincando`.`INSEREUSUARIO`$$ CREATE PROCEDURE `brincando`.`INSEREUSUARIO` (IN PRO_USU_USUARIO VARCHAR(30), IN PRO_USU_SENHA VARCHAR(20)) BEGIN DECLARE Msg varchar(250); DECLARE excessao SMALLINT DEFAULT 0; DECLARE CONTINUE HANDLER FOR SQLEXCEPTION SET excessao = 1; IF(PRO_USU_USUARIO = '') THEN set excessao = 1; SET Msg = 'INSIRA NOME'; end if; IF(PRO_USU_SENHA = '' and excessao <> 1) THEN set excessao = 1; SET Msg = 'INSIRA SENHA'; end if; if excessao <> 1 then START TRANSACTION; INSERT INTO USUARIO (USUARIO, SENHA) VALUES(PRO_USU_USUARIO, PRO_USU_SENHA); IF excessao = 1 THEN SET msg = 'Erro ao inserir'; ROLLBACK; else COMMIT; SET Msg = 'DADOS INSERIDOS COM SUCESSO'; end if; END IF; SELECT Msg; END$$ DELIMITER; Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Uander
/* desconsidere os comentarios e as # */
CREATE DATABASE BRINCANDO;
USE BRINCANDO;
#DROP TABLE USUARIO;
CREATE TABLE USUARIO(
ID_USUARIO INT AUTO_INCREMENT NOT NULL,
USUARIO VARCHAR(30),
SENHA VARCHAR(20),
PRIMARY KEY(ID_USUARIO)
);
/*
SELECT * FROM USUARIO;
*/
/*(Um simples insert para testar a tabela, depois acabei comentando ele)
INSERT INTO USUARIO
(USUARIO, SENHA)
VALUES
('UANDER','123');
*/
#DROP PROCEDURE INSEREUSUARIO;
DELIMITER $$
CREATE PROCEDURE INSEREUSUARIO
(
IN PRO_USU_NOME VARCHAR(30),
IN PRO_USU_SENHA VARCHAR(20)
)
BEGIN
IF(NOME='') THEN
SELECT 'INSIRA NOME' AS Msg;
ELSE IF(SENHA='') THEN
SELECT 'INSIRA SENHA' AS Msg;
ELSE
INSERT INTO USUARIO
(NOME, SENHA)
VALUES(PRO_USU_NOME, PRO_USU_SENHA);
END IF;
END IF;
SELECT 'DADOS INSERIDOS COM SUCESSO' AS Msg;
END $$
DELIMITER ;
CALL INSEREUSUARIO('UANDER2','123456');
---------------------------------------------------------
CREATE TABLE USUARIO -- 0 ROW(S) AFECTED 0.078 SEC
INSERT INTO USUARIO (USUARIO, SENHA) 1 ROW(S) EFFECTED 0.048 SEC
COMENTO O INSERT
EXECUTO O BLOCO DA PROCEDURE INSERE USUARIO = ERROR CODE:1050 'USUARIO' ALREADY EXISTS 0.000 SEC
alguém PODERIA AJUDAR?
ABRAÇO
Link para o comentário
Compartilhar em outros sites
4 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.