e ai pessoal, to com o seguinte problema, fiz uma procedure para inserção de novos usuários no banco: DELIMITER //
CREATE PROCEDURE cria_usuario(v_nome VARCHAR(45), v_cpf INT(9), v_telefone VARCHAR(13),
v_nivel_usuario INT(2), v_usuario CHAR(8), v_senha VARCHAR(8), v_ativo INT(1))
BEGIN
#Definição de uma condição de erro, no caso de inserção de usuário já existente
DECLARE ´erro_usuario´ CONDITION FOR SQLSTATE '23000';
DECLARE EXIT HANDLER FOR ´erro_usuario´
BEGIN
SELECT 'Usuário já existente'; #Texto que será retornado
END;
#Inserção do usuário na tabela usuário
INSERT INTO usuario(nome, cpf, telefone, nivel_usuario, usuario, senha, ativo)
VALUES (v_nome, v_cpf, v_telefone, v_nivel_usuario, v_usuario, v_senha, v_ativo);
#No caso de ocorrência do erro mecionado em erro_usuario, a procedure será interrompida neste ponto.
IF (v_nivel_usuario=1) THEN #no caso no novo usuário ser administrador
GRANT DELETE, INSERT, UPDATE, SELECT
ON anutric.*
TO v_usuario IDENTIFIED BY '123456';
ELSE # no caso de um usuário qualquer
GRANT SELECT
ON anutric.*
TO v_usuario IDENTIFIED BY '123456';
END IF;
END Acontece que no comando GRANT na parte referente a especificação do usuário, ele ta gravando o usuário com nome da variável(v_usuario) e não com o parametro que está sendo passado na procedure, gostaria de saber como faço para que seja gravado o parametro. Outro probleminha é com a senha, o GRANT também não ta pegando a senha que foi passada como parametro, por que pela sentaxe essa parte tem que estar entre aspas simples, alguém sabe como resolver esse pepino também. abraços!!!!!!