如何使用用户提交的变量进行查询并保存?

时间:2019-04-01 09:19:16

标签: mysql sql database stored-procedures mysql-workbench

我是数据库菜鸟。
我正在建立具有许多属性的数据库。
我想这样做,以便财产所有者(用户)可以仅通过调用函数/存储例程/存储过程/准备好的语句(我用谷歌搜索,但拥有很难找出我要寻找的东西。

这是我的插入查询代码:

property

因此,我想创建一个可以存储的类似INSERT INTO property (property_owner_id, property_type_id, address, zip_code, area_m2, price_€) VALUES (/* Owner ID */,/* Property Type ID */,/* Address */,/* Zip Code */,/* Area */,/* Price */); 函数。 然后,业主只需执行以下操作:

submit

我正在寻找答案,但看到的东西带有“ @”,有时却没有。
我还不太了解整个“函数/存储例程/存储过程/准备好的语句”。
它似乎也随着语言的变化而变化。
在某些示例中,我需要预先设置变量/参数。在其他人中我没有。

我刚刚开始学习SQL。我知道数据库通常是如何工作的。
我知道如何创建表,更新表,插入数据,创建主键和外键。
我知道如何使用联接,左联接,交叉联接等查询数据,以及在何处,具有,排序依据,分组依据等命令。
但是到目前为止,我还不太了解如何制作一个可重用的代码块,在这里我只能调用其名称,并仅插入变量/参数。

如果有帮助,我正在将MySQL Workbench 6.2.5与UwAmp一起使用。

谢谢!

1 个答案:

答案 0 :(得分:1)

您可能已经阅读了有关存储过程的信息,但是此link可能会有所帮助。

对您的问题: 您想要一个可以在调用参数时接受参数的过程。

CREATE PROCEDURE addtoproperty(
    IN ownerid INT,
    IN propertytype INT,
    IN adress VARCHAR,
    IN zipcode INT,
    IN area VARCHAR,
    IN price DECIMAL(15,2)      
)
BEGIN
    INSERT INTO property
        (property_owner_id, property_type_id, address, zip_code, area_m2, price_€)
    VALUES
        (ownerid,propertytype, adress, zipcode, area, price);
END;

您将在以下语句中使用此过程。这次您需要将文本替换为具有实际值的文本。因此ownerid类似于12345。

CALL addtoproperty(ownerid,propertytype, adress, zipcode, area, price);