2016-07-25 11 views
-2
mysql>delimiter // 
mysql>create procedure add_student 
(
in student_id decimal(10), 
in name varchar(20), 
in course varchar(10), 
in address varchar(10), 
in bday varchar(15), 
in gender varchar(10)) 
begin 
if exists(select *from student_id where student_id=student_id) 
select'student alredy exist' 
else 
select'New student added' 
insert into student values(student_id,name,course,address,bday,gender) 
endif 
end; 
// 

plzzzヘルプMySQLの手順と同じIDを検出し、新しい学生に

+1

今朝は甘いおしゃべりではありません。 – Drew

+0

plzzzz詳細。 – C4u

+0

何が必要ですか?あなたの質問ではっきりしない。 –

答えて

0

を挿入する他の場合(編集する必要があります)あなたの質問以下のコメントをよると:

があなたのstudent_id上で一意のキーを設定します(既に行われていない場合)INSERT IGNOREを使用してください。 documentation

から

引用あなたがIGNOREキーワードを使用している場合は、INSERT文を実行中に発生するエラーは無視されます。たとえば、IGNOREを使用しない場合、テーブル内の既存のUNIQUEインデックスまたはPRIMARY KEY値を複製する行によって重複キーエラーが発生し、そのステートメントは中止されます。 IGNOREでは、行は破棄され、エラーは発生しません。無視されたエラーは重複したキーエラーではありませんが、代わりに警告を生成することがあります。

既に存在する新しい行を挿入すると、その行はスキップされます。これはあなたのif -> else部分です。

関連する問題