私は自分のゲームのすべてのユーザーがいるテーブルを含む簡単なデータベースを持っています。私は、ユーザー名と電子メールアドレスを一意にしたいので、一意のインデックスを持つように設定してください。ゲームのための新しいユーザー・レジスタは、この文が実行されるたびにMySql独自のインデックスどのように適切なレスポンスを生成するのですか?
:
tmpQUERY = "INSERT INTO vertix_users (user_name, user_email, user_pass) " +
"VALUES (" + mysql.escape(userName) +
", " + mysql.escape(userEmail) +
", " + mysql.escape(userPass) + ") " +
"ON DUPLICATE KEY " +
"RETURN 'This username already exists'";
私は、単純なINSERTは、ユーザー名やメールアドレスの重複を避けるために、IGNORE行うだけのことができます。しかし、私がやりたいことは、ユーザーにとって役に立つフィードバックを生成することです。 「この名前は取られている」または「Eメールはすでに使用中です。上記のコードは、私がうまくいくと思ったものの任意の例です。これらの行に沿って何かを達成するにはどうすればいいですか?
通常、これはデータベースではなくアプリケーションで行います。 –
このクエリはNode.jsサーバーから実行されます。どういう意味ですか?アプリは、名前/電子メールがすでに存在するかどうかを確認するいくつかのリクエストを行う必要がありますか? –
> 0がメッセージをエコーアウトすると、INSERT IGNOREを持つノードのaffecetd行を使用します。http://stackoverflow.com/questions/16199842/find-number-of-rows-in-returned-mysql-result-nodejs – Mihai