导入存储过程时出错1064

时间:2015-12-31 09:40:01

标签: mysql stored-procedures import

我使用以下代码导入存储过程:

DELIMITER $$
--
-- Procedures
--
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `t_addToFlux`(IN `type` VARCHAR(255), IN `element_id` INT(11), IN `etudiant_id` INT(11))
BEGIN
    INSERT INTO stream(type, element_id, student_id) VALUES(type, element_id, etudiant_id);
END$$

但是当我在服务器上执行它时,我收到了这个错误:

  

1064 - 您的SQL语法出错;检查与MySQL服务器版本对应的手册,以便在'PROCEDURE t_addToFlux(IN type VARCHAR(255),IN element_id INT(11),IN`etu附近使用正确的语法'在第6行

我不知道为什么会出现这个错误

stream表的结构:

enter image description here

创建者:

CREATE TABLE IF NOT EXISTS `stream` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `type` varchar(255) NOT NULL,
  `element_id` int(11) NOT NULL,
  `student_id` int(11) NOT NULL,
  `date` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
  PRIMARY KEY (`id`),
  KEY `student_id` (`student_id`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;

MySQL Version : 5.6.17 - MySQL Community Server (GPL)

感谢您的帮助!

托马斯

1 个答案:

答案 0 :(得分:0)

我终于找到了我的问题的解决方案,我在这里写了它,如果它可以帮助一些人。

我的第一个请求是:

CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `t_addToFlux`(IN `type` VARCHAR(255), IN `element_id` INT(11), IN `etudiant_id` INT(11))
BEGIN
    INSERT INTO stream(type, element_id, student_id) VALUES(type, element_id, etudiant_id);
END$$

我试图删除:

  

OR REPLACE

现在我的要求对我有用!

事实是"OR REPLACE"语句不能与MySQL一起使用。