2017-08-20 22 views
0

insert table1とselectなどのクエリを別のテーブルに含めることができる関数をMySQLデータベースに作成するには、関数内のパラメータを値複数のクエリを含むMYSQL関数

ユーザーへの挿入のための
DELIMITER $ 
CREATE FUNCTION registration(username varchar(15), password(15), level_user int(1), name varchar(30), email varchar(30), address varchar(50)) RETURNS int 
BEGIN 

INSERT INTO users(username, password, level_user, created, modified) VALUES('username', 'password', 'level_user'); 
INSERT INTO employes(name, email, adrress) VALUES('name','email', 'address'); 

END $ 
+0

mysqlはhttps://stackoverflow.com/questions/11321491/when-to-use-single-quotes-double-quotes参照値に単一引用符を使用しないでください "と作品" -and-backticks-in-mysql –

+0

私は、関数を使って複数の挿入を作成する方法も可能ですか? – user8322851

答えて

0

別にパスワードのデータ型を提供していない単一引用符の問題から、指定した複数のフィールドを使用すると、値で提供されるよりも、employesはの値のタイプミス、名前かもしれemployesは提供されておらず、おそらくユーザー名でなければならず、コードで使用するつもりがない場合でもreturn文を提供する必要があります。個人的に私はこのコードを修正して、ユーザーがまだ存在していないことを確認し、戻り値を何か意味のあるものに設定して実行後のチェックを行うことができます。

このコード

drop function if exists registration; 
delimiter $$ 


CREATE FUNCTION registration(username varchar(15), password varchar(15), level_user int(1), name varchar(30), email varchar(30), address varchar(50)) 
RETURNS int 

BEGIN 

INSERT INTO users(name, password) VALUES(username, password); 
INSERT INTO e(name, email, address) VALUES(username,email, address); 
return 12; 
END $$ 
delimiter ; 
+0

どのようなリターン12の意味; – user8322851

+0

return文がなければ関数はSQLエラー(1320)を返しません。関数内にRETURNはありません。また、何らかの理由でreturn文で返されなければなりません。 –

関連する問題