Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Как создать автозаполняемую таблицу? / 15 сообщений из 15, страница 1 из 1
22.04.2005, 18:29
    #33031094
Halyva
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как создать автозаполняемую таблицу?
Здравствуйте!
Такой вопрос. Есть таблица1 в которой 2 поля. Надо создать таблицу2 в которой одно из полей формируется путём перемножения двух полей из таблицы 1, причём автоматически.
...
Рейтинг: 0 / 0
22.04.2005, 22:11
    #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
22.04.2005, 22:49
    #33031393
Halyva
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как создать автозаполняемую таблицу?
Дак это то понятно! Получается надо каждый раз писать запрос самостоятельно "INSERT INTO `tabB` (`pole`) SELECT pole1*pole2 FROM `tabA`;". Это то получается не автоматически, а посредством запросов. Мне же надо чтоб я тока заполнял одну таблицу, а вторую mysql сам заполнял!
...
Рейтинг: 0 / 0
22.04.2005, 23:01
    #33031402
©Felix
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как создать автозаполняемую таблицу?
копай в сторону триггеров.....

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

хотя я в упор не понимаю зачем ето нужно
_______________
Felix
...
Рейтинг: 0 / 0
23.04.2005, 04:12
    #33031524
Halyva
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как создать автозаполняемую таблицу?
А что тут непонятногото? Просто таблица заполнятсе динамически примерно по 20 записей в минуту. А другая таблица заполняется исходя из 1 путём всяких выборок и математических вычислений. Зачем какие то скрипты писать который будут выполнятся каждые скока то минут и будут сами выполнять эти вычисления если mysql может это делать сам при заполнении первой табилцы? (конечно если это возможно)
...
Рейтинг: 0 / 0
23.04.2005, 13:47
    #33031707
©Felix
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как создать автозаполняемую таблицу?
я ж ответил ТРИГГЕРЫ
_______________
Felix
...
Рейтинг: 0 / 0
23.04.2005, 13:52
    #33031710
Хрен
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как создать автозаполняемую таблицу?
хороший ответ. А теперь покажите, где в mysql ТРИГГЕРЫ
...
Рейтинг: 0 / 0
23.04.2005, 14:07
    #33031719
©Felix
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как создать автозаполняемую таблицу?
сорри мож загнул конечно а что нету ???? в последних версиях или в 5 ???
_______________
Felix
...
Рейтинг: 0 / 0
23.04.2005, 14:10
    #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
23.04.2005, 14:38
    #33031741
Хрен
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как создать автозаполняемую таблицу?
will be added
...
Рейтинг: 0 / 0
24.04.2005, 20:27
    #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
24.04.2005, 20:29
    #33032342
Astron
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как создать автозаполняемую таблицу?
Хотя нормализацию я думаю вы еще помните, так что почитайте заодно про view.
...
Рейтинг: 0 / 0
25.04.2005, 09:34
    #33032581
Berkut
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как создать автозаполняемую таблицу?
А такой вариант не подойдет?

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

select field1*field2
from tabA;
...
Рейтинг: 0 / 0
25.04.2005, 09:42
    #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
25.04.2005, 12:22
    #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
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Как создать автозаполняемую таблицу? / 15 сообщений из 15, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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