2012-05-15 2 views
0

Я хочу создать сотрудника таблицы с атрибутами id, name, dept, username.MySQL: создание таблицы с автоматическим приращением и объединение значений, сгенерированных значениями другого столбца той же таблицы

Значения столбцов id являются auto_increment. Я хочу объединить значения id с делом, чтобы сгенерировать имя пользователя.

Ниже приводится запрос, который я написал: создать таблицу сотрудников emp_id MEDIUMINT NOT NULL AUTO_INCREMENT, имя полукокса (30) NOT NULL, отдел символ (6) NOT NULL, имя пользователя 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 и dept.

0

Вы можете использовать нуль на MySQL для автоматического Traslate как последний ID:

INSER INTO employee (name, dept) VALUES (?,?); 
UPDATE employee SET username = concant(emp_id,dept) WHERE emp_id = NULL; 
Смежные вопросы