0

id、name、dept、username 属性を持つテーブル従業員を作成したいと考えています。

id 列の値は auto_increment です。id の値を dept と連結して、ユーザー名を生成したいと考えています。

以下は私が書いたクエリです: create table employee emp_id MEDIUMINT NOT NULL AUTO_INCREMENT, name char(30) NOT NULL, dept char(6)NOT NULL, username varchar NOT NULL PRIMARY KEY(emp_id);

このテーブルに値を正しく挿入する方法は? 助けてください。

4

2 に答える 2

1

ユーザー名が常に と の連結であるid場合は、別の列を作成する必要はありません。次のように、MySQL CONCAT関数deptを使用して選択するだけです。

SELECT id, name, dept, CONCAT(id, '-', dept) AS username FROM employee

usernameこれはlike の結果を返します13-sales

ユーザー名を実際に保存したい場合 (おそらく後でカスタマイズする機能が必要なため)、最初に行を挿入して ID を取得し、次に行を更新してユーザー名を連結された ID と部門に設定する必要があります。

于 2012-05-15T16:55:56.600 に答える
0

MySQL では、最後の ID として auto traslate に null を使用できます。

INSER INTO employee (name, dept) VALUES (?,?);
UPDATE employee SET username = concant(emp_id,dept) WHERE emp_id = NULL; 
于 2012-05-15T17:00:42.910 に答える