mysql - MySQL插入时出现语法错误

标签 mysql insert

我试图熟悉 MySQL,但感到很沮丧。

我正在尝试创建一个函数...

use mystuff;
DELIMITER $$
create PROCEDURE spUpdateCodeTable(
   IN mcodeID INT,
   IN mtableCode CHAR(5), 
   IN mDescription VARCHAR(100), 
   IN mCode CHAR(5), 
   IN mgroupCode CHAR(5), 
   IN mt1 VARCHAR(100), 
   IN mt2 VARCHAR(100), 
   IN mt3 VARCHAR(100))
BEGIN
   UPDATE codeTable SET 
      tableCode =mtableCode,
      Description=mDescription,
      Code=mCode,
      groupCode=mgroupCode,
      t1=mt1,
      t2=mt2,
      t3=mt3,
      chaDate=NOW()
   WHERE codeID = mcodeID;

   IF (ROW_COUNT() < 1)
   BEGIN
      INSERT INTO codeTable (tableCode,Description,Code,groupCode,t1,t2,t3,createDate)
      VALUES (mtableCode,mDescription,mCode,mgroupCode,mt1,mt2,mt3,NOW());
   END;      
END$$
DELIMITER ;

当我只有 UPDATE 部分时,该过程编译得很好,但是当我添加插入四行(从 IF (ROW_COUNT().... 开始)时,我开始得到......

#1064 - 您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,了解在附近使用的正确语法 '开始 INSERT INTO codeTable (tableCode, Description, Code, groupCode,t1,t2,t' at line 23'

最佳答案

就像@Phil 所说,你会想要...

IF (ROW_COUNT() < 1) THEN
  INSERT INTO codeTable (tableCode,Description,CODE,groupCode,t1,t2,t3,createDate)
  VALUES (mtableCode,mDescription,mCode,mgroupCode,mt1,mt2,mt3,NOW());
END IF;

而不是你拥有的。

存储过程的 MySQL 错误消息不是很棒吗?

关于mysql - MySQL插入时出现语法错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22339598/

相关文章:

mysql - 在巨大的 MySQL 表上进行 INSERT ... SELECT

mysql - 我正在使用 2 个查询,有什么方法可以使它成为单个查询

php - 如果不存在则插入php

php - 创建动态 SQL 搜索

php - 将表添加到现有查询

insert - sqlalchemy 的 MapperExtension 的一些问题

python - 使用Python在Mysql数据库中插入一个值

MySQL - 字段 <myfield> 没有默认值

java - 错误 : org. hibernate.exception.SQLGrammarException: 无法提取 ResultSet 并且 dateAccessed 是未知列

MySQL : Get count of rows containing name from different table, 两个表都有关联