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

标签 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);

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

最佳答案

您不需要为参数值定义变量:

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

注意:过程的第一个参数定义为整数。 MySQL 隐式将 '1' 转换为 1(字符串转换为整数)。不过,如果您在数据库服务器上执行该过程,最好对整数参数使用严格的整数值。

关于mysql - 在 SQL 中插入一行并在存储过程中设置变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38953037/

相关文章:

mysql - 无法在选择 MYSQL 中使用筛选器虚拟列

mysql - 如何获取行的所有字段以及sqrt在MIN中的字段的sqrt

mysql - 我的触发语句有问题吗?

mysql - 我可以在我的 mysql 查询中使用条件逻辑吗?

php - 从 DB2 数据库填充 MySQL 数据库

javascript - 我可以缩短这个脚本吗? (更新数据库表并刷新)

MySQL随机排序并保存在数据库中,无需ID

mysql - 运行EXPLAIN时,如果key的字段值不为null,Extra为空,是否使用了key?

mysql - 有选择地清除 MySQL 查询缓存(只清除一个特定的查询)

mysql - 如何从不同的表中获取值并将其传递给触发器?