Форум программистов, компьютерный форум, киберфорум
MySQL
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/10: Рейтинг темы: голосов - 10, средняя оценка - 4.80
0 / 0 / 2
Регистрация: 13.01.2010
Сообщений: 129

Возможно ли это сделать в Mysql?

13.01.2010, 05:08. Показов 2134. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, php/mysql начал изучать недавно, так что не во всём ещё могу разобраться....
Есть такой вопрос.К примеру есть таблица в базе с тремя полями.В первых двух полях числа.Можно ли сделать так, чтобы третье поле принимало какое-то значение в зависимости от значений первого и второго полей.К примеру сумму чисел из первых двух полей.(Я имею ввиду можно ли такое сделать без того чтобы писать пхп код, соединяясь с базой и вставляя в это поле сумму этих чисел)
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
13.01.2010, 05:08
Ответы с готовыми решениями:

Как это сделать , если это возможно, сам не уверен
Помогите, как это сделать Пример В таблице Excel я ввожу какую нибудь формулу (Sin(x), a не...

Возможно ли это и если да как это сделать?
Имеется удаленный сервер с управлением через KVM и с операционной системой windows server 2012, ее...

Огромная база данных mysql на 2 и более серверах, это возможно?
Здравствуйте!) Хочу сразу сказать что в mysql не очень то и понимаю да и вообще в других бд...

1
 Аватар для solar_wind
770 / 760 / 59
Регистрация: 06.07.2009
Сообщений: 3,021
13.01.2010, 06:21
Это называется Триггеры

Смотри пример здесь
Триггеры в MySQL
Триггер — это хранимая процедура, которая не вызывается непосредственно, а исполняется при наступлении определенного события ( вставка, удаление, обновление строки ).
Поддержка триггеров в MySQL началась с версии 5.0.2

Синтаксис создания триггера:

T-SQL
1
2
    CREATE TRIGGER trigger_name trigger_time trigger_event
    ON tbl_name FOR EACH ROW trigger_stmt* This source code was highlighted with Source Code Highlighter.

trigger_name — название триггера
trigger_time — Время срабатывания триггера. BEFORE — перед событием. AFTER — после события.
trigger_event — Событие:
insert — событие возбуждается операторами insert, data load, replace
update — событие возбуждается оператором update
delete — событие возбуждается операторами delete, replace. Операторы DROP TABLE и TRUNCATE не активируют выполнение триггера
tbl_name — название таблицы
trigger_stmt выражение, которое выполняется при активации триггера

Применение

Лог

Исходные данные:

T-SQL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
    — таблица, за которой мы будем следить
    CREATE TABLE `test` (
    `id` INT( 11 ) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
    `content` TEXT NOT NULL
    ) ENGINE = MYISAM
    — лог
    CREATE TABLE `log` (
    `id` INT( 11 ) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
    `msg` VARCHAR( 255 ) NOT NULL,
    `time` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
    `row_id` INT( 11 ) NOT NULL
    ) ENGINE = MYISAM
    — триггер
    DELIMITER |
    CREATE TRIGGER `update_test` AFTER INSERT ON `test`
    FOR EACH ROW BEGIN
       INSERT INTO log Set msg = 'insert', row_id = NEW.id;
    END;* This source code was highlighted with Source Code Highlighter.

Теперь добавьте запись в таблицу test. В таблице log тоже появится запись, обратите внимание на поле row_id, в нем хранится id вставленной вами строки.
Расширенный лог:

Исходные данные:

T-SQL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
    — Удаляем триггер
    DROP TRIGGER `update_test`;
    — Cоздадим еще одну таблицу,
    — в которой будут храниться резервные копии строк из таблицы test
    CREATE TABLE `testing`.`backup` (
    `id` INT( 11 ) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
    `row_id` INT( 11 ) UNSIGNED NOT NULL,
    `content` TEXT NOT NULL
    ) ENGINE = MYISAM
    — триггеры
    DELIMITER |
    CREATE TRIGGER `update_test` before update ON `test`
    FOR EACH ROW BEGIN
      INSERT INTO backup Set row_id = OLD.id, content = OLD.content;
    END;
 
    CREATE TRIGGER `delete_test` before delete ON `test`
    FOR EACH ROW BEGIN
      INSERT INTO backup Set row_id = OLD.id, content = OLD.content;
    END* This source code was highlighted with Source Code Highlighter.

Теперь если мы отредактируем или удалим строку из test она скопируется в backup.

зы: надеюсь статья была интересной и полезной
UPD: для создания триггеров в версии до 5.1.6 требуются полномочия суперпользователя.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
13.01.2010, 06:21
Помогаю со студенческими работами здесь

Возможно ли это сделать?
Здравствуйте форумчане. Вопрос состоится в таком облике)) есть таблица users. конечно же в нем ...

Как это возможно сделать?
Как это сделать на с++

Возможно ли это сделать корректно?
Есть две таблицы create table A (ida integer, maxdate date) create table B (idb integer, ida...

Возможно ли сделать это на php?
Хотел бы узнать, возможно ли при помощи php сделать такую программу: Написать программу, которая...

Возможно ли сделать это средставами html?
У меня есть два див, которые находятся внутри третьего, с фиксированной шириной. Первый .right...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru