存储过程问题

时间:2019-02-03 19:21:50

标签: mysql stored-procedures

有人可以帮助我进行手术吗?

enter image description here

我收到错误消息:

enter image description here

哪里有问题?

1 个答案:

答案 0 :(得分:0)

如果编写的过程中的主体中有多个语句,则需要使用class partialImplementationA : public virtual interface { public: void fnA() const {cout << "fnA from partial implementation A" << endl;} }; class partialImplementationB : public virtual interface { public: void fnB() const {cout << "fnB from partial implementation B" << endl;} }; class myClass : public virtual interface, public partialImplementationA, public partialImplementationB { public: };

public function homeTeam() {}
public function awayTeam() {}
public function stadium() {}
....

请注意,我在您的插入语句中更改了{ "id": 15, "date": "2019-01-01", "homeTeam": { "id": 1, "name": "Super Team" }, "awayTeam": { "id": 2, "name": "Another Team" } } 。不必使用select,而且如果不将其放在带有括号的子查询中,就无法做到这一点。

我还有更多评论:

  • 确保您的IN参数名称与列名称不同,否则您可能会创建模糊的SQL语句,即MySQL不知道您是指BEGIN...END in参数还是{{1 }}存款表中的列。这不是错误,但可能会插入NULL,因为它使用的是不存在的行中的CREATE PROCEDURE addItemToRepository(IN name VARCHAR(50), IN rfid VARCHAR(20), IN type VARCHAR(20), IN manufacturer INT, IN model VARCHAR(30), IN toRent TINYINT) NOT DETERMINISTIC MODIFIES SQL DATA SECURITY DEFINER BEGIN SET @typeid = (SELECT id FROM dictionary WHERE value = type LIMIT 1); INSERT INTO depository (name, rfidtag, type, manufacturer, model, torent) VALUES (name, rfid, @typeid, manufacturer, model, torent); END 。因此,我建议习惯在以“ p”之类的前缀表示参数的参数中命名。

  • 声明局部变量,而不使用会话变量。 MySQL对它们的区别对待。

  • 考虑使用其他select(@typeid)语法。

这是我的建议:

manufacturer