未知专栏'年龄'在'字段列表'

时间:2015-11-17 20:16:17

标签: mysql stored-procedures

我正在尝试创建一个更新到表格的程序,但仍然会遇到一个"未知列'年龄'在'字段列表'"错误。我在这个之前创建了一个几乎完全相同的程序,这让我很困惑为什么这不起作用。下面是我的程序代码和表格布局。

程序守则

DELIMITER $$
create procedure NewChild(IN FirstName varchar(50),
IN LastName varchar(50),
IN Age int(2),
IN Sex varchar(7),
IN UserID int(8),
IN Allg_Notes varchar(500)
)
BEGIN
INSERT INTO Client (FirstName,LastName,Age,Sex,UserID,Allg_Notes)
values (FirstName,LastName,Age,Sex,UserID,Allg_Notes);
End;$$
DELIMITER ;

表格代码

CREATE TABLE `Child` (
`ChildID` int(8) NOT NULL AUTO_INCREMENT,
`FirstName` varchar(50) NOT NULL,
`LastName` varchar(50) NOT NULL,
`Age` int(2) NOT NULL,
`Sex` varchar(7) NOT NULL,
`UserID` int(8) NOT NULL,
`Allg_Notes` varchar(500) DEFAULT NULL,
PRIMARY KEY (`ChildID`),
KEY `UserID` (`UserID`),
CONSTRAINT `Child_ibfk_1` FOREIGN KEY (`UserID`) REFERENCES `Client`(`UserID`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=latin1;

调用示例

Call NewChild('Jack','Person',2,'male',3,'none');

2 个答案:

答案 0 :(得分:0)

您正在使用字段名称作为变量。

因此,而不是字段名称mysql将使用插入的值

答案 1 :(得分:0)

好 改变这个:

INSERT INTO Client (FirstName,LastName,Age,Sex,UserID,Allg_Notes)

到此

INSERT INTO Child (FirstName,LastName,Age,Sex,UserID,Allg_Notes)