在SQL中插入行并在存储过程中设置变量?

时间:2016-08-15 10:01:35

标签: mysql sql stored-procedures phpmyadmin

我想知道是否有人知道或者是否可以在下面的过程中设置(id,FirstName,LastName),这样我就可以通过输入来插入新客户...

CALL ('1','John','Smith');
CALL ('2', 'Jane','Smith'); and so on.

目前我的代码看起来像这样。我正在使用phpMyAdmin

CREATE PROCEDURE spUpdateCustomers(id INT(10),
FirstName VARCHAR(30), 
LastName VARCHAR(30))
BEGIN   
INSERT INTO customers (CustomerID, CustomerFirstName, CustomerLastName) VALUES (id , FirstName, LastName);
END

然后我用它来调用它。

SET @id='1'; 
SET @FirstName='John'; 
SET @LastName='Smith'; 
CALL spUpdateCustomer(@id, @firstName, @lastName);

我的目标是避免在每次调用之前设置每个变量。任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:0)

您无需为参数值定义变量:

CALL spUpdateCustomer(1, 'John', 'Smith');

注意:过程的第一个参数定义为整数。 MySQL隐含地投射了' 1'为1(字符串为整数)。但是,如果您在数据库服务器上执行该过程,则最好对整数参数使用严格的整数值。