MySQL:创建一个具有自动增量的表,并将生成的值与同一个表的不同列的值连接起来

时间:2012-05-15 16:51:05

标签: mysql

我想创建一个具有id,name,dept,username属性的表employee。

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);

如何正确地将值插入此表?请帮忙。

2 个答案:

答案 0 :(得分:1)

如果您的用户名始终是iddept的串联,则无需为其创建单独的列,您只需使用MySQL CONCAT选择它即可。功能,像这样:

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

这将返回username的结果13-sales

如果您想要实际存储用户名(可能是因为您希望以后能够自定义它),则必须首先插入行以获取ID,然后更新行设置用户名到连接ID和部门。

答案 1 :(得分:0)

你可以在MySQL上使用null作为自动traslate作为最后一个id:

INSER INTO employee (name, dept) VALUES (?,?);
UPDATE employee SET username = concant(emp_id,dept) WHERE emp_id = NULL;