Как я могу автоматически вставить значения в новый столбец, который я сделал на основе столбца, который уже существует в mySQL - PullRequest
0 голосов
/ 21 ноября 2018

У меня была таблица employee, в которой хранились некоторые данные, включая salary.Я добавил еще один столбец grade.

If salary is between 0-2000 grade is 1.
If between 2000-3000 grade is 2.
If more than 3000 than 3.

Нужно ли делать это вручную с помощью UPDATE или можно определить это условие с помощью ALTER.

Ответы [ 3 ]

0 голосов
/ 21 ноября 2018

В вашем случае лучше всего использовать CREATE TABLE и сгенерированные столбцы , как @Madhur, упомянутый в комментарии

И еще один вариант - использовать запрос на обновление ниже, но примите во вниманиечто любое обновление значения заработной платы может нарушить соотношение между столбцами salary и grade.

UPDATE `employee ` SET `grade` = CASE
    WHEN salary >= 0 AND salary <=2000 THEN 1
    WHEN salary > 2000 AND salary <=3000 THEN 2
    WHEN salary > 3000 THEN 3
    ELSE `0`
    END
0 голосов
/ 21 ноября 2018

Это можно сделать с помощью обновления.Но, возможно, вам будет удобнее использовать сгенерированный столбец:

alter table employee add grade int generated as
    (case when salary < 2000 then 1 when salary < 3000 then 2 else 3 end);

Это удобно, потому что вам не нужно обновлять оценку, если изменяется оценка или добавляются новые строки.GRADE рассчитывается при использовании.

0 голосов
/ 21 ноября 2018

Почему вы хотите сохранить оценку в таблице?Вы всегда можете извлечь оценку из зарплаты.В вашем выборе вы можете использовать регистр.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...