Olá pessoal, este código MYSQL tem a seguinte função,
pegar uma tabela chamada employee que possui os seguintes campos: [supervisor_id int, employee_id int, full_name varchar] e apartir desta tabela, gerar uma outra tabela employee_closure que possui os seguintes campos: [supervisor_id int, employee_id int, distance int] mostrando o relacionamento entre supervisores e empregados.
É mais ou menos assim:
Tabela Employee
A tabela employee ela tem que estar populada com alguns valores, no exemplo acima coloquei alguns
Tabela que deve ser gerada com o código que estou tendo problema, esta tabela tem que estar em branco, mas o código quando for execultado vai popular a tabela da seguinte maneira:
Employee_closure
----------------------------------------------
| supervisor_id | employ_id | distance |
----------------------------------------------
| 1 | 1 | 0 |
| 1 | 2 | 1 |
| 1 | 3 | 2 |
| 1 | 4 | 1 |
| 1 | 5 | 3 |
| 1 | 6 | 2 |
| 2 | 2 | 0 |
| 2 | 3 | 1 |
| 2 | 5 | 2 |
| 2 | 6 | 1 |
| 3 | 3 | 0 |
| 3 | 5 | 1 |
| 4 | 4 | 0 |
| 5 | 5 | 0 |
| 6 | 6 | 0 |
----------------------------------------------
CREATE PROCEDURE close_employee()
BEGIN
DECLARE distance int;
TRUNCATE TABLE employee_closure;
SET distance = 0;
INSERT INTO employee_closure (supervisor_id, employee_id, distance)
SELECT employee_id, employee_id, distance
FROM employee;
REPEAT
SET distance = distance + 1;
INSERT INTO employee_closure (supervisor_id, employee_id, distance)
SELECT employee_closure.supervisor_id, employee.employee_id, employee_closure.distance
FROM employee_closure, employee
WHERE employee_closure.employee_id = employee.supervisor_id
AND employee_closure.distance = distance - 1;
UNTIL (ROW_COUNT() == 0)
END REPEAT
END
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'UNTIL (ROW_COUNT() == 0)
END REPEAT
END' at line 19
Warnings: --->
W (1): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'UNTIL (ROW_COUNT() == 0)
Pergunta
thiagito
Olá pessoal, este código MYSQL tem a seguinte função,
pegar uma tabela chamada employee que possui os seguintes campos: [supervisor_id int, employee_id int, full_name varchar] e apartir desta tabela, gerar uma outra tabela employee_closure que possui os seguintes campos: [supervisor_id int, employee_id int, distance int] mostrando o relacionamento entre supervisores e empregados.
É mais ou menos assim:
Tabela Employee
A tabela employee ela tem que estar populada com alguns valores, no exemplo acima coloquei alguns
Tabela que deve ser gerada com o código que estou tendo problema, esta tabela tem que estar em branco, mas o código quando for execultado vai popular a tabela da seguinte maneira:
Employee_closure
----------------------------------------------
| supervisor_id | employ_id | distance |
----------------------------------------------
| 1 | 1 | 0 |
| 1 | 2 | 1 |
| 1 | 3 | 2 |
| 1 | 4 | 1 |
| 1 | 5 | 3 |
| 1 | 6 | 2 |
| 2 | 2 | 0 |
| 2 | 3 | 1 |
| 2 | 5 | 2 |
| 2 | 6 | 1 |
| 3 | 3 | 0 |
| 3 | 5 | 1 |
| 4 | 4 | 0 |
| 5 | 5 | 0 |
| 6 | 6 | 0 |
----------------------------------------------
O erro que esta relatando é o seguinte:
>[Error] Script lines: 1-21 -------------------------
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'UNTIL (ROW_COUNT() == 0)
END REPEAT
END' at line 19
Warnings: --->
W (1): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'UNTIL (ROW_COUNT() == 0)
END REPEAT
END' at line 19
<---
[Executed: 24/10/08 14h16min35s BRT ] [Execution: 0/ms]
Agradeço desde já!
Editado por thiagitoLink para o comentário
Compartilhar em outros sites
1 resposta a esta questão
Posts Recomendados