gpt4 book ai didi

mysql - 调用存储过程在 MySQL 5.5 的所有列中插入 NULL

转载 作者:太空宇宙 更新时间:2023-11-03 10:59:34 25 4
gpt4 key购买 nike

我正在尝试在 MySQL 5.5 中调用插入存储过程。我使用的存储过程是:

DELIMITER $$

CREATE DEFINER=`root`@`%` PROCEDURE `SetProvince`(
IN p_Code VARCHAR(20),
IN p_Name VARCHAR(200),
IN p_CountryID INT(11),
IN p_Description TEXT,
IN p_IsActive BIT(1),
IN p_CreationDatestamp CHAR(8)
)
BEGIN

INSERT INTO province
(
`Code`,
`Name`,
`CountryID`,
`Description`,
`IsActive`,
`CreationDatestamp`
)
VALUES
(
@p_Code,
@p_Name,
@p_CountryID,
@p_Description,
@p_IsActive,
@p_CreationDatestamp
);


END;

但是每当我调用存储过程时:

   CALL SetProvince('0003','Assam',1,'hehehehehe',1,'20130607');

它在所有列中插入 NULL。我哪里错了?

表结构是:

CREATE TABLE `province` (
`ID` int(11) NOT NULL AUTO_INCREMENT,
`Code` varchar(20) DEFAULT NULL,
`Name` varchar(200) DEFAULT NULL,
`CountryID` int(11) DEFAULT NULL,
`Description` text,
`IsActive` bit(1) DEFAULT NULL,
`CreationDatestamp` char(8) DEFAULT NULL,
PRIMARY KEY (`ID`),
KEY `FK_province_country_idx` (`CountryID`),

CONSTRAINT FK_province_country FOREIGN KEY (CountryID) 引用 country (ID) ON DELETE NO Action ON UPDATE NO Action )

ENGINE=InnoDB AUTO_INCREMENT=53 DEFAULT CHARSET=latin1$$

最佳答案

你不应该把 @ 放在变量名之前。变量 @p_Codep_Code 是两个不同的变量。

@-变量可用于一个连接的整个生命周期,因此您可以从不同的过程、触发器、正常查询等访问它。

声明的变量和过程参数仅在该范围内可用。

关于mysql - 调用存储过程在 MySQL 5.5 的所有列中插入 NULL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16977886/

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