gpt4 book ai didi

MySQL创建过程声明变量问题

转载 作者:行者123 更新时间:2023-11-29 14:06:09 25 4
gpt4 key购买 nike

几天前我就这个问题寻求帮助,但没有收到答复。或者有什么意见。如果我变得烦人,我深表歉意,我只是想利用可用的途径来完成我的类作业。

使用变量编写名为“AddNewAlbum”的过程。此过程至少需要两个参数 - NameOfArtist 和 AlbumName。该过程将:

1.从Artist表中查找ArtistID,其中艺术家姓名为NameOfArtist

2.使用步骤 #1 中找到的 ArtistID 和 AlbumName 参数在相册中插入新行

现在可以安全地假设在运行此过程之前该艺术家已存在(这意味着如果您 CALL AddNewAlbum ('Bob Dylan', 'Street Legal');则“Bob Dylan”已存在于 Artist 表中。

这就是我需要做的^

CREATE PROCEDURE AddNewAlbum (
NameOfArtist varchar(50),
AlbumName varchar(50)
)
BEGIN

DECLARE artist_id varchar(50);

SELECT ArtistID into artist_id
FROM Artists
WHERE ArtistName = NameOfArtist;

INSERT INTO Albums (Title)
VALUES (AlbumName);
END;
//

call AddNewAlbum (
"Bob Dylan",
"Street Legal"
);
//

错误 1364 (HY000):字段“ArtistID”没有默认值

这是返回的错误。我尝试用其他几种方式编写此代码,但返回了相同的错误。

最佳答案

试试这个。添加了默认值并稍微更新了您的过程以匹配输入

CREATE PROCEDURE AddNewAlbum (
NameOfArtist varchar(50),
AlbumName varchar(50)
)
BEGIN

DECLARE artist_id INT DEFAULT 0;

SELECT ArtistID into artist_id
FROM Artists
WHERE ArtistName = NameOfArtist;

INSERT INTO Albums (ArtistID, Title)
VALUES (artist_id, AlbumName);
END;
//

call AddNewAlbum (
"Bob Dylan",
"Street Legal"
);
//

关于MySQL创建过程声明变量问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14314699/

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