【发布时间】:2018-03-19 15:23:36
【问题描述】:
为什么我的存储过程在最后两行出错。我错过了什么吗?我正在尝试编写一些东西,它采用我的基础名称并创建一个将其递增 1 并继续直到达到 150 的变量。我知道如何在 Microsft SQL 中执行此操作,这可能是我的语法错误的来源。谢谢。
USE repo;
DELIMITER $$
Create DEFINER = 'root' @ 'localhost' procedure csvOutput()
BEGIN DECLARE basis_name int; SET @basis_name = 0;
if basis_name < 150 then
set basis_name = basis_name + 1;
SELECT *
FROM
(SELECT
'cbt.component',
'fl.input_flow',
'ft.flow',
'Function_ID',
'sf.subfunction',
'fl.output_flow',
'ft2.flow',
'# of times it appears',
'sf.tier'
UNION ALL (SELECT
cbt.component,
fl.input_flow,
ft.flow,
sf.id AS 'Function ID',
sf.subfunction,
fl.output_flow,
ft2.flow,
COUNT(a.name) AS '# of times it appears',
sf.tier
FROM
artifact a, function fu, flow fl, flow_type ft, subfunction_type sf, flow_type ft2, comp_basis_type cbt
WHERE
a.id = fu.describes_artifact
AND fu.id = fl.describes_function
AND fl.input_flow = ft.id
AND fl.output_flow = ft2.id
AND fu.subfunction_type = sf.id
AND a.basis_name = 115
AND fu.supporting = 0
AND a.basis_name = cbt.id
AND sf.tier >= 3
GROUP BY fl.input_flow
ORDER BY COUNT(fu.id) DESC)) resulting_set INTO OUTFILE 'C:/ProgramData/MySQL/MySQL Server 5.7/Uploads/test4.csv' FIELDS ENCLOSED BY '"' TERMINATED BY ',' ESCAPED BY '"' LINES TERMINATED BY '';
END$$
Delimiter;
【问题讨论】:
标签: mysql database stored-procedures