powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Как создать автозаполняемую таблицу?
15 сообщений из 15, страница 1 из 1
Как создать автозаполняемую таблицу?
    #33031094
Halyva
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте!
Такой вопрос. Есть таблица1 в которой 2 поля. Надо создать таблицу2 в которой одно из полей формируется путём перемножения двух полей из таблицы 1, причём автоматически.
...
Рейтинг: 0 / 0
Как создать автозаполняемую таблицу?
    #33031377
Фотография ©Felix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
CREATE TABLE `tabA` (
`pole1` INT NOT NULL ,
`pole2` INT NOT NULL 
);


INSERT INTO `tabA` (`pole1`, `pole2`) 
VALUES ('2', '4');


INSERT INTO `tabA` (`pole1`, `pole2`) 
VALUES ('3', '6');

CREATE TABLE `tabB` (
`pole` INT NOT NULL 
);


INSERT INTO `tabB` (`pole`) SELECT pole1*pole2 FROM `tabA`;

_______________
Felix
...
Рейтинг: 0 / 0
Как создать автозаполняемую таблицу?
    #33031393
Halyva
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Дак это то понятно! Получается надо каждый раз писать запрос самостоятельно "INSERT INTO `tabB` (`pole`) SELECT pole1*pole2 FROM `tabA`;". Это то получается не автоматически, а посредством запросов. Мне же надо чтоб я тока заполнял одну таблицу, а вторую mysql сам заполнял!
...
Рейтинг: 0 / 0
Как создать автозаполняемую таблицу?
    #33031402
Фотография ©Felix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
копай в сторону триггеров.....

чтоб при одном инсерте он делал второй с умножением.....

хотя я в упор не понимаю зачем ето нужно
_______________
Felix
...
Рейтинг: 0 / 0
Как создать автозаполняемую таблицу?
    #33031524
Halyva
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А что тут непонятногото? Просто таблица заполнятсе динамически примерно по 20 записей в минуту. А другая таблица заполняется исходя из 1 путём всяких выборок и математических вычислений. Зачем какие то скрипты писать который будут выполнятся каждые скока то минут и будут сами выполнять эти вычисления если mysql может это делать сам при заполнении первой табилцы? (конечно если это возможно)
...
Рейтинг: 0 / 0
Как создать автозаполняемую таблицу?
    #33031707
Фотография ©Felix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я ж ответил ТРИГГЕРЫ
_______________
Felix
...
Рейтинг: 0 / 0
Как создать автозаполняемую таблицу?
    #33031710
Фотография Хрен
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
хороший ответ. А теперь покажите, где в mysql ТРИГГЕРЫ
...
Рейтинг: 0 / 0
Как создать автозаполняемую таблицу?
    #33031719
Фотография ©Felix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
сорри мож загнул конечно а что нету ???? в последних версиях или в 5 ???
_______________
Felix
...
Рейтинг: 0 / 0
Как создать автозаполняемую таблицу?
    #33031724
Фотография ©Felix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вот, нашел.... в 5 вроде есть

Support for stored procedures has been added in version 5.0, and support for triggers will be added in version 5.0.
_______________
Felix
...
Рейтинг: 0 / 0
Как создать автозаполняемую таблицу?
    #33031741
Фотография Хрен
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
will be added
...
Рейтинг: 0 / 0
Как создать автозаполняемую таблицу?
    #33032340
Astron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Хрен will be added

V503q:drop trigger accounts.upd_check!
Query OK, 0 rows affected (0.28 sec)

V503q:show tables!
+----------------+
| Tables_in_igor |
+----------------+
| accounts |
| qws |
+----------------+
2 rows in set (0.27 sec)

V503q:CREATE TRIGGER upd_check BEFORE UPDATE ON accounts FOR EACH ROW
-> BEGIN
-> IF NEW.amount < 0 THEN
-> SET NEW.amount = 0;
-> ELSEIF NEW.amount > 100 THEN
-> SET NEW.amount = 100;
-> END IF;
-> END;
-> !
Query OK, 0 rows affected (0.28 sec)
...
Рейтинг: 0 / 0
Как создать автозаполняемую таблицу?
    #33032342
Astron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Хотя нормализацию я думаю вы еще помните, так что почитайте заодно про view.
...
Рейтинг: 0 / 0
Как создать автозаполняемую таблицу?
    #33032581
Фотография Berkut
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А такой вариант не подойдет?

Код: plaintext
1.
2.
3.
4.
5.
create table tabB(
 t int not null)

select field1*field2
from tabA;
...
Рейтинг: 0 / 0
Как создать автозаполняемую таблицу?
    #33032595
Фотография Хрен
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Astron
V503q:CREATE TRIGGER upd_check BEFORE UPDATE ON accounts FOR EACH ROW
-> BEGIN
-> IF NEW.amount < 0 THEN
-> SET NEW.amount = 0;
-> ELSEIF NEW.amount > 100 THEN
-> SET NEW.amount = 100;
-> END IF;
-> END;
-> !
Query OK, 0 rows affected (0.28 sec)

Не вводите людей в заблуждение. Это всего лишь (как написано в документации)
Rudimentary support for triggers, для реальной работы это не годится. тем более что 5.0 еще бета.

Кстати причем тут нормализация?
...
Рейтинг: 0 / 0
Как создать автозаполняемую таблицу?
    #33033023
Astron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Хрен Astron
V503q:CREATE TRIGGER upd_check BEFORE UPDATE ON accounts FOR EACH ROW
-> BEGIN
-> IF NEW.amount < 0 THEN
-> SET NEW.amount = 0;
-> ELSEIF NEW.amount > 100 THEN
-> SET NEW.amount = 100;
-> END IF;
-> END;
-> !
Query OK, 0 rows affected (0.28 sec)

Не вводите людей в заблуждение. Это всего лишь (как написано в документации)
Rudimentary support for triggers, для реальной работы это не годится. тем более что 5.0 еще бета.

Кстати причем тут нормализация?

Ну Вам, как специалисту по MySQL должно быть известно про выход версии 5.0.3, где есть достаточно корявая, соглашусь, но все же работающая поддержка триггеров. Для решения проблемы автора топика этой поддержки конечно же не хватит, так что я отвечал лично Вам. Не вводите людей в заблуждение :-) триггеры все-таки есть.
А по поводу нормализации - вы считаете что наличие физически хранимого вычислимого поля а БД, да еще в другой таблице, соответствует всем нормальным формам? Конечно же, я так плохо о Вас не думаю, вы один из тех на этом форуме, кто знает что MySQL это не подмножество PHP. Так что Вы безусловно понимаете, что решение проблемы автора топика все-таки не в триггерах, а в операторе типа
CREATE VIEW qqq AS SELECT field1,field2, field1*field2 as "my_cool_field" FROM table1;
...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Как создать автозаполняемую таблицу?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]