Задать вопрос
Maxim_ka
@Maxim_ka
Системный инженер

Простой вопрос по Mysql?

Добрый день, уважаемые,


Сильно прошу не минусовать, так как только пытаюсь ближе познакомиться с mysql. Возник вопрос с добавлением столбца в существующую таблицу.


Есть такая таблица:
mysql> describe 37A;
+-------------+---------------------+------+-----+---------+----------------+
| Field       | Type                | Null | Key | Default | Extra          |
+-------------+---------------------+------+-----+---------+----------------+
| id          | bigint(10) unsigned | NO   | PRI | NULL    | auto_increment |
| part        | varchar(20)         | NO   | PRI | NULL    |                |
| description | varchar(150)        | NO   |     | NULL    |                |
| unit        | varchar(5)          | NO   |     | NULL    |                |
| quantity    | decimal(3,0)        | NO   |     | NULL    |                |
| USD         | decimal(10,2)       | NO   |     | NULL    |                |
+-------------+---------------------+------+-----+---------+----------------+



Необходимо добавить еще один столбец в эту таблицу, столбец Total_in_USD должен быть произведением quantity на USD.


Знаю, что вопрос достаточно простой, почитал немного, к сожалению разобраться не получилось.

Заранее благодарю.
  • Вопрос задан
  • 3357 просмотров
Подписаться 2 Оценить 1 комментарий
Решение пользователя Ivan Komarov К ответам на вопрос (5)
FreeTibet
@FreeTibet
dharma supplier
По поводу SELECT и ALTER вам уже написали. А вот пример необходимых вам триггеров:

CREATE DEFINER = 'root'@'localhost' TRIGGER `tab_before_ins_tr` BEFORE INSERT ON `tab`  
FOR EACH ROW
BEGIN
  SET NEW.Total_in_USD = NEW.quantity * NEW.USD;
END;

CREATE DEFINER = 'root'@'localhost' TRIGGER `tab_before_upd_tr` BEFORE UPDATE ON `tab`
FOR EACH ROW
BEGIN
  SET NEW.Total_in_USD = NEW.quantity * NEW.USD;
END;
Ответ написан
Комментировать