gpt4 book ai didi

mysql - 在 MySql Workbench 中测试存储过程

转载 作者:可可西里 更新时间:2023-11-01 06:36:45 25 4
gpt4 key购买 nike

我有一个插入存储过程,我要在其中插入 2 个表。第二个表使用第一个表的 Last_Insert_ID。这是我的存储过程:

    DELIMITER $$

CREATE DEFINER=`root`@`%` PROCEDURE `new_user_create`(

IN oFarmName varchar(45),
IN oFirstName varchar(45),
IN oAddress1 varchar(45),
IN oCity varchar(45),
IN oState varchar(45),
IN oZip varchar(45),
IN oCountry varchar(45)
)
BEGIN
insert into intelliair.individual
( FarmName, FirstName)
values ( oFarmName, oFirstName);
insert into intelliair.address
(IndividualID, Address1, City, State, Zip, Country)
Values (Last_Insert_ID(), oAddress1, oCity, oState, oZip, oCountry);
END

以下是我在 MySql 工作台中测试查询的方式:

call new_user_create(@myFarm, @MyName, @MyAddress, @MyCity, @MyState, @MyZip, @MyCountry)

我得到的错误是:“Column Address1 cannot be null”

我哪里错了?它在存储过程中吗?还是我的称呼方式?

最佳答案

Column Address1 cannot be null”表示 intelliair.address.Address1 字段必须定义为 not null

而且,我不认为您在将 @MyAddress 传递给存储过程之前预先定义了值。
除非已定义,否则它会被视为 NULL,因此会引发错误。

在调用存储过程之前交叉检查值,例如:

select @MyAddress;  -- ,@myFarm, @MyName, @MyCity, @MyState, @MyZip, @MyCountry;

更新 1:

您可以通过直接为每个参数输入值来调用存储过程。
示例:

call new_user_create(  
'my Farm value', -- @myFarm
'E B', -- @MyName
'My Address is SO', -- @MyAddress1
'My City is Coders', -- @MyCity
'CA', -- @MyState
'12345', -- @MyZip
'US' -- @MyCountry
);

关于mysql - 在 MySql Workbench 中测试存储过程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11525774/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com