Pesquisar na Comunidade
Mostrando resultados para as tags ''erro 1064''.
Encontrado 1 registro
-
Estou tentando fazer a seguinte inserção de dados no Banco utilizando uma procedure e o erro é: #1064 - Você tem um erro de sintaxe no seu SQL próximo a 'VALUES ('Funcionário', 'Luciana', 'Soares', '1', '1900-01-1', 'casa tal', 'DF',' na linha 1 use db_studiotopfit; call create_user(type_user,nome, sobrenome, sexo, data_nascimento,endereco, uf, cidade, bairro, cpf, rg, email, username, senha, cargo, salario)VALUES ('Funcionário', 'Luciana', 'Soares', '1', '1900-01-1', 'casa tal', 'DF', 'Brasília', 'jnidas', '89076543', '94984984', 'teste@hotmail.com', 'Letícia de', '123', 'dibsadh', '1000') Esta é a definição da minha procedure: -- ----------------------------------------------------- -- Procedure `db_studiotopfit`.`create_user` -- ----------------------------------------------------- DELIMITER $$ CREATE PROCEDURE create_user( IN type_user VARCHAR(25), IN cpf BIGINT(11), IN nome VARCHAR(15), IN sobrenome VARCHAR(45), IN sexo TINYINT(1), IN data_nascimento DATE, IN endereco VARCHAR(80), IN uf VARCHAR(2), IN cidade VARCHAR(15), IN bairro VARCHAR(25), IN rg VARCHAR(20), IN email VARCHAR(100), IN username VARCHAR(15), IN password VARCHAR(45), IN cargo VARCHAR(30), IN salario DECIMAL(7, 2)) BEGIN DECLARE user_type INT(4) DEFAULT 0; DECLARE id_matricula INT(4) DEFAULT 0; DECLARE errno INT; DECLARE EXIT HANDLER FOR SQLEXCEPTION BEGIN GET CURRENT DIAGNOSTICS CONDITION 1 @P1 = MYSQL_ERRNO, @P2 = MESSAGE_TEXT; SELECT @P1 AS 'Código', @P2 AS 'Mensagem'; ROLLBACK; END; START TRANSACTION; SELECT idperfil INTO user_type FROM `perfil` WHERE perfil=type_user ORDER BY idperfil DESC LIMIT 1; INSERT INTO `tb_pessoa` (cpf, nome, sobrenome, sexo, data_nascimento, endereco, uf, cidade, bairro, rg, email) VALUES (cpf, nome, sobrenome, sexo, data_nascimento, endereco, uf, cidade, bairro, rg, email); INSERT INTO `usuario` (id_pessoa_cpf, perfil_idperfil, senha, usuario) VALUES (cpf, user_type, MD5(password), username); CASE type_user WHEN 'Aluno' THEN INSERT INTO `tb_aluno` (id_pessoa_cpf) VALUES (cpf); WHEN 'Funcionário' THEN BEGIN INSERT INTO `tb_funcionario` (id_pessoa_cpf, cargo, salario) VALUES (cpf, cargo, salario); SELECT LAST_INSERT_ID() INTO id_matricula; CASE cargo WHEN 'Professor' THEN INSERT INTO tb_professor (tb_funcionario_id_matricula) VALUES (id_matricula); ELSE BEGIN END; END CASE; END; ELSE BEGIN END; END CASE; COMMIT; END $$ DELIMITER ;
- 1 resposta
-
- help
- erro de sintaxe
-
(e mais 1 )
Tags: