数日前にこれについて助けを求めましたが、返事がありませんでした。または任意のコメント。うるさくなったら申し訳ありませんが、授業を完了するために利用可能なコンセントを使用しようとしているだけです。
変数を使用して、「AddNewAlbum」というプロシージャを記述します。このプロシージャは、NameOfArtist と AlbumName の少なくとも 2 つのパラメーターを使用します。手順は次のとおりです。
1.Artist テーブルから ArtistID を検索します。ここで、アーティスト名は NameOfArtist です。
2. 手順 1 で見つけた ArtistID と AlbumName パラメータを使用して、Albums に新しい行を挿入します。
現時点では、この手順を実行する前にアーティストが存在すると想定しても問題ありません (つまり、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' に既定値がありません
それはエラーが返されることです。これを他のいくつかの方法で記述しようとしましたが、同じエラーが返されます。