当前位置: 首页 > 知识库问答 >
问题:

导入存储过程时出现错误1064

田翔
2023-03-14

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

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服务器版本对应的手册,以在'PROCEDUREt_addToFlux附近使用正确的语法(INtypeVARCHAR(255),INelement_idINT(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版本:5.6.17-MySQL社区服务器(GPL)

谢谢你的帮助!

托马斯

共有1个答案

齐招
2023-03-14

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

我的第一个要求是:

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$$

我试图删除:

或者替换

现在我的请求对我有用了!

事实上,“或REPLACE”语句不适用于MySQL。

 类似资料:
  • 我想使用phpmyadmin在MySQL数据库中进行存储过程。 几分钟后,我在“创建过程”对话框中键入并按下GO,我的语法出现了错误。 我在谷歌上搜索过哪一个是错的,但仍然没有找到。请任何人给我一些建议如何解决这个问题。 这是我的MySQL存储过程查询。 我有这样的错误 处理您的请求: 以下查询失败:"CREATE DEFINER=@PROCEDURE(INBIT(1), ININT, INDAT

  • 我一直在尝试建立一个工作区,以便为Minecraft 1.12.2制作一些基本的mods,为此我一直遵循以下指南:https://codakid.com/guide-to-Minecraft-modding-with-/ 在尝试运行构建时,我遇到了一些问题,但通过遵循以下关于eclipse设置的指南进行了修复:https://techwiseacademy.com/minecraft-moddin

  • 我试图创建一个存储过程,但不断出现错误: #1064年的今天,您的SQL语法出现错误;查看与您的MySQL服务器版本对应的手册,以了解第3行“NOT DETERMINISTIC CONTAINS SQL SECURITY DEFINER COMMENT”“B”附近使用的正确语法 我的SQL如下: 我尝试过包含分隔符,但没有结果。我想问题可能出在引号里。有人能给我指出解决办法吗?谢谢 MySQL 5

  • 我正在为db2创建一个存储过程。但是它给出了一个错误 SQL错误[42601]:在“SS_token_BAK”之后发现意外的标记“END-OF-STATEMENT”。预期的标记可能包括:“END IF”。.SQLCODE=-104,SQLSTATE=42601,DRIVER=4.23.42。 以下是我的存储过程。 是否有人面临此类问题。任何这方面的帮助将不胜感激。

  • 我正在将sql转储文件导入MySQL工作台,并不断收到下面的错误。这是否意味着文件/记录的其余部分没有导入,或者只有xxx.get速率部分没有导入?我会丢失其中的记录吗?有人知道是什么导致了这种情况吗? 01:29:31 恢复 D:\Projects\CustomerName\Customer Files\xxx-2016-Oct-03.sql Running: mysql.exe --defau

  • 我正在创建一个存储过程,以根据记录id更新表记录。下面是我的代码(更新部分中的值仅为测试而硬编码): 当我调用以下程序时: 我得到以下错误: 错误代码:1175。您使用的是安全更新模式,并且您试图更新一个没有使用键列禁用安全模式的表,请在“首选项”中切换该选项- 然而,当我只执行更新查询时,它工作正常。 我已尝试禁用SQL\u SAFE\u更新,但当我运行存储过程时,它会更新我的所有表记录!就好像