Ir para conteúdo
Fórum Script Brasil

Maurílio Martins

Membros
  • Total de itens

    8
  • Registro em

  • Última visita

Sobre Maurílio Martins

Maurílio Martins's Achievements

0

Reputação

  1. SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0; SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='TRADITIONAL,ALLOW_INVALID_DATES'; SET SQL_MODE=@OLD_SQL_MODE; SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS; SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS;
  2. Veja o exemplo: create table time( id int not null primary key auto_increment, nome varchar(50) unique )engine=innodb; delimiter $$ CREATE PROCEDURE insertteam (nometime varchar(50)) begin declare continue handler for 1062 select 'você já inseriu esse nome anteriormente'; insert into time (id, nome) values(null, nometime); end$$ delimiter ; call insertteam ('BRASIL'); select * from time; se eu "chamar" e inserir brasil novamente ele trava corretamente, até ai tudo ok. Mas quando vou inserir um time que ainda não existe ele insere corretamente, mas pula os ids nas respectivas vezes que tentei inserir brasil novamente e deu errado. Por exemplo: se eu tentar inserir brasil 5 vezes ele insere a primeira e da erro nas outras. Mas depois quando eu for inserir "mexico" ele insere corretamente mas no id = 6.
  3. Para que serve exatamente a função handler e como posso utiliza-la para tratar um erro no mysql?
  4. gostaria de saber como funciona e como inserir a função @@ERROR no script abaixo: DELIMITER $ DROP PROCEDURE CRIAR_CONSULTA$ CREATE PROCEDURE CRIAR_CONSULTA(IDPAC INT, IDMED INT, IDHOS INT) BEGIN start transaction; if (IDPAC > 0 AND IDMED > 0 AND IDHOS > 0) THEN INSERT INTO CONSULTA (IDCONSULTA, ID_PACIENTE, ID_MEDICO, ID_HOSPITAL, DATA) VALUES(NULL, IDPAC, IDMED, IDHOS, CURTIME()); SELECT(' DADOS INSERIDOS COM SUCESSO ') AS 'MENSAGEM'; commit; ELSE SELECT ('INSIRA OS DADOS CORRETAMENTE') AS 'MENSAGEM DE ERRO'; ROLLBACK; END IF; END$ DELIMITER ;
  5. gostaria de saber como funciona e como inserir a função @@ERROR no script abaixo: DELIMITER $ DROP PROCEDURE CRIAR_CONSULTA$ CREATE PROCEDURE CRIAR_CONSULTA(IDPAC INT, IDMED INT, IDHOS INT) BEGIN start transaction; if (IDPAC > 0 AND IDMED > 0 AND IDHOS > 0) THEN INSERT INTO CONSULTA (IDCONSULTA, ID_PACIENTE, ID_MEDICO, ID_HOSPITAL, DATA) VALUES(NULL, IDPAC, IDMED, IDHOS, CURTIME()); SELECT(' DADOS INSERIDOS COM SUCESSO ') AS 'MENSAGEM'; commit; ELSE SELECT ('INSIRA OS DADOS CORRETAMENTE') AS 'MENSAGEM DE ERRO'; ROLLBACK; END IF; END$ DELIMITER ;
  6. Quando criptografamos uma senha no mysql, (EX: INSERT INTO usuario (id, login, senha) VALUES (NULL,'admin', MD5('xxx')) obviamente a senha se transforma naquele hash. Gostaria de entender como funciona o mecanismo do mysql, pois se dermos um select nos user obviamente vai aparecer a senha criptografada, mas como então o mysql "entende" a senha "xxx" quando um usuário se loga no sistema?
  7. Encontrei em um livro a função password sendo utilizada na criação do usuario para cripitografar a senha. EX: CREATE USER 'xxx' identified by password ( '123)' ; Ocorreu um erro de sintaxe na criação desse usuario... essa função password foi descontinuada?
  8. Criei o código mas esta apresentando o seguinte erro: "Error Code: 1427. For float(M,D), double(M,D) or decimal(M,D), M must be >= D (column '(null)')." DELIMITER // CREATE FUNCTION calcula_imposto(salario decimal(10,2)) returns decimal(8,20) BEGIN DECLARE valor_imp dec(8,2); DECLARE vall DEC(8,2); IF salario < 1000.00 THEN SET valor_imp = 0.00; ELSEIF salario < 2000.00 then SET valor_imp = 0.15; ELSE SET valor_imp = 0.27; END IF; SET vall = valor_imp * salario; RETURN vall; END// Poderia fazer de outra forma como na hora do SET VALOR_IMP = X já multiplicar pelo salario. Mas gostaria de saber o porque não funcionou... AH RAPAIZ...q jumento...coloquei returns decimal (8,20)
×
×
  • Criar Novo...