我使用以下代码导入存储过程:
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
(INtype
VARCHAR(255),INelement_id
INT(11),IN`etu附近使用正确的语法'在第6行
我不知道为什么会出现这个错误
stream
表的结构:
创建者:
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)
感谢您的帮助!
托马斯
答案 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一起使用。