在MySQL中创建过程时出错
问题描述:
在以下查询中出现错误的可能性有多大?在MySQL中创建过程时出错
DELIMITER $$
CREATE PROCEDURE `tbl_assessment_notes`(
`var_reason` VARCHAR,
'var_attr2' VARCHAR,
'var_note' VARCHAR
)
BEGIN
IF EXISTS
(
SELECT
*
FROM
tbl_assessment_notes
WHERE
reason = var_reason AND attr2 = var_attr2
) THEN
UPDATE
tbl_assessment_notes
SET
note = CONCAT(note, var_note),
TIMESTAMP = 'CURRENT_TIMESTAMP'
WHERE
attr1 = var_attr1 AND reason = var_reason ELSE
INSERT
INTO
tbl_assessment_notes(
pk_assess_note_id,
attr2,
attr3,
reason,
note,
TIMESTAMP
)
VALUES(
NULL,
var_attr2,
NULL,
'confirmation',
var_note,
'CURRENT_TIMESTAMP'
) ;
END IF ;
END $$
DELIMITER ;
,我发现了以下错误:
#1064 - 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 '
'var_reason' VARCHAR,
'var_attr2' VARCHAR,
`var_note` VARCHAR,
'var' at line 2
基本上我想要做的是,如果它存在,否则创建一个新的行和值插入它来更新行。
答
你创建程序查询有错误在任线,在N2
CREATE PROCEDURE `tbl_assessment_notes`(// line N1
`var_reason` VARCHAR, // line N1
'var_attr2' VARCHAR, // line N2
'var_note' VARCHAR, // line N2 - first of all remove last comma from here.
)
改变单引号(')到(')。 这是因为utf字符的标准。
它更改为...
CREATE PROCEDURE `tbl_assessment_notes`(
`var_reason` VARCHAR,
`var_attr2` VARCHAR,
`var_note` VARCHAR //also don't forget to remove comma from here..
)
+0
完成编辑并更改了报价类型。但仍然有同样的错误。 –
答
请使用更新的查询
DELIMITER $$
CREATE PROCEDURE `tbl_assessment_notes`
(var_reason VARCHAR(255),
var_attr2 VARCHAR(255),
var_note VARCHAR(255))
BEGIN
IF EXISTS
(
SELECT
*
FROM
tbl_assessment_notes
WHERE
reason = var_reason AND attr2 = var_attr2 ) THEN UPDATE tbl_assessment_notes SET note = CONCAT(note, var_note), TIMESTAMP
= 'CURRENT_TIMESTAMP' WHERE attr1 = var_attr1 AND reason = var_reason ELSE INSERT INTO tbl_assessment_notes(
pk_assess_note_id,
attr2,
attr3,
reason,
note,
TIMESTAMP) VALUES(NULL,var_attr2,NULL,'confirmation', var_note, 'CURRENT_TIMESTAMP') ;
END IF ;
END $$
DELIMITER ;
+0
同样的错误。 –
+0
请使用最新的查询 –
什么是错误讯息? (附加到问题) –
其中是代码包含var_attr1'VARCHAR, 'var_attr2'VARCHAR, var_title' VARCHAR,'你的代码中没有这样的代码。 –
@ManojShukla Sry我错误地判断了错误。现在它被编辑了。 –