2016-04-06 8 views
1
USE `sakila`; 
DROP procedure IF EXISTS `change_user_name`; 

DELIMITER $$ 
USE `sakila`$$ 
CREATE PROCEDURE `change_user_name` (actor_id int, first_name varchar(45), last_name varchar(45)) 
BEGIN 

UPDATE actor SET first_name='first_name', last_name='last_name' WHERE actor_id='actor_id'; 


END$$ 

DELIMITER ; 

を行を更新するために、私はMySQLのワークベンチからMySQLの手順この手順が動作しませんなぜ

+0

あなたには早すぎるDELIMITERがあります。入力値と命名パラメーターの列は同じです – Mihai

答えて

2

を任意のエラーメッセージが表示されない私はDELIMITER一部についてはよく分からないんだけど、機能するためにそれが必要

CREATE PROCEDURE `change_user_name` (actor_id_in int, first_name_in varchar(45), last_name_in varchar(45)) 
BEGIN 

UPDATE actor 
SET first_name=first_name_in, 
    last_name=last_name_in 
WHERE actor_id=actor_id_in; 

2つの引用符 'example'の中にテキストを指定すると、それは列ではなく文字列として認識されます。あなたのDBMSに予約語の名前を持つカラム/テーブルを扱うときには、引用符で囲まれていない二重引用符/角カッコを使用する必要があります

+0

@FAMO_php問題はありません。 – sagi

+0

私はここで承認を行う方法が比較的新しいので、問題はありませんか?私はあなたの答えのためにそれを正しい方法でしましたか? –

+0

はい、あなたは@FAMO_php – sagi