MySQL:创建具有自动增量的表并将生成的值与同一表的不同列的值连接起来
Posted
技术标签:
【中文标题】MySQL:创建具有自动增量的表并将生成的值与同一表的不同列的值连接起来【英文标题】:MySQL: Creating a table with auto increment and concatenating the values generated with the values of a different column of the same table 【发布时间】:2012-05-23 05:44:21 【问题描述】:我想创建一个具有 id、name、dept、username 属性的表员工。
id 列的值为 auto_increment。我想将 id 的值与 dept 连接以生成用户名。
以下是我写的查询: 创建表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);
如何正确地将值插入到该表中?请帮忙。
【问题讨论】:
【参考方案1】:如果您的用户名始终是id
和dept
的串联,则无需为其创建单独的列,您可以使用mysql 的CONCAT 函数选择它,如下所示:
SELECT id, name, dept, CONCAT(id, '-', dept) AS username FROM employee
这将返回username
的结果,例如13-sales
。
如果您想实际存储用户名(可能是因为您希望以后能够自定义它),您必须先插入行以获取 id,然后将设置用户名的行更新为连接的 id和部门。
【讨论】:
【参考方案2】:您可以在 MySQL 上使用 null 作为最后一个 id:
INSER INTO employee (name, dept) VALUES (?,?);
UPDATE employee SET username = concant(emp_id,dept) WHERE emp_id = NULL;
【讨论】:
以上是关于MySQL:创建具有自动增量的表并将生成的值与同一表的不同列的值连接起来的主要内容,如果未能解决你的问题,请参考以下文章