|
|
|
update через суммирование из разных таблиц
|
|||
|---|---|---|---|
|
#18+
Подскажите, плиз, как записать слагаемые триггера, который обновляет строку таблица2 по событию в таблица1 ? Как правильно указать выделенное жирным? CREATE TRIGGER имятриггера AFTER INSERT ON таблица1 UPDATE таблица2 SET поле = TIME_TO_SEC ( таблица1.поле ) + TIME_TO_SEC ( таблица2.поле ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.04.2014, 00:56:31 |
|
||
|
update через суммирование из разных таблиц
|
|||
|---|---|---|---|
|
#18+
Или же, может, имеет смысл таблица1.поле добавить в таблица2 и только потом складывать как поля одной таблицы? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.04.2014, 01:18:16 |
|
||
|
update через суммирование из разных таблиц
|
|||
|---|---|---|---|
|
#18+
manfredima, во-первых, к обновляемым полям в триггере можно(нужно) обращаться через псевдо-псевдонимы :) new/old во-вторых, вы хотите обновить всю Т2 или только какую-то одну запись, связанную с обновляемой записью в Т1? из запроса получается, что всю, но это необычно, поэтому уточните, действительно ли вы этого хотите. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.04.2014, 05:02:39 |
|
||
|
update через суммирование из разных таблиц
|
|||
|---|---|---|---|
|
#18+
1. я читал про поля new/old, но сам понял, что таковыми нарекаются поля отслеживаемой таблицы (типа - предыдущее последнее и новое последнее ). А выходит - поля изменяемой :) 2. запись UPDATE таблица2 SET поле вроде бы даёт понять, что должно обновиться поле . В T2 - два поля и одна строка. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.04.2014, 10:12:34 |
|
||
|
update через суммирование из разных таблиц
|
|||
|---|---|---|---|
|
#18+
manfredimaя читал про поля new/old, но сам понял, что таковыми нарекаются поля отслеживаемой таблицы (типа - предыдущее последнее и новое последнее ). А выходит - поля изменяемой :)это поля той таблицы, изменения в которой вызывают триггер как проще объяснить, я не знаю :) manfredimaзапись UPDATE таблица2 SET поле вроде бы даёт понять, что должно обновиться поле . В T2 - два поля и одна строка.одно поле, но во всех строках но если у вас всего одна строка в таблице, то разницы нет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.04.2014, 10:56:17 |
|
||
|
update через суммирование из разных таблиц
|
|||
|---|---|---|---|
|
#18+
manfredimaПодскажите, плиз, как записать слагаемые триггера, который обновляет строку таблица2 по событию в таблица1 ? Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.04.2014, 11:25:01 |
|
||
|
update через суммирование из разных таблиц
|
|||
|---|---|---|---|
|
#18+
tanglirэто поля той таблицы, изменения в которой вызывают триггер.я так и думал изначально, но вы неопределённо написали: " к обновляемым полям в триггере можно(нужно) обращаться через псевдо-псевдонимы :) new/old " Ведь "обновляемые поля" - фраза не особо конкретная: обновляемые ЧЕМ - триггером или действием пользователя? Теперь я точно знаю - что обновляемые юзером :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.04.2014, 14:43:08 |
|
||
|
update через суммирование из разных таблиц
|
|||
|---|---|---|---|
|
#18+
мне немного непонятно место кода (жирным): SET `поле` = `таблица2`.`поле` + TIME_TO_SEC (NEW.поле) WHERE `таблица2`.`ключ` = NEW.`ключ`; - обозначает ли запись NEW.поле - поле из T1, из новодобавленной юзером строки? - что такое NEW.ключ ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.04.2014, 14:50:10 |
|
||
|
update через суммирование из разных таблиц
|
|||
|---|---|---|---|
|
#18+
я немного упростил (для себя) схему и теперь сюжет таков: 1. есть таблица jos_k2_items с полем extra_fields 2. есть таблица jos_k2_totaltime : id totaltime plustime1 651:31:25 00:00:00 3. при добавлении новой строки в jos_k2_items триггер должен : - значением из jos_k2_items.extra_fields обновить поле jos_k2_totaltime.plustime - обновить jos_k2_totaltime.totaltime = jos_k2_totaltime.totaltime + jos_k2_totaltime.plustime Код: plsql 1. 2. 3. 4. 5. 6. Код с SUBSTRING и POSITION осмысливать не надо: я так получаю нужные данные и он работает. Меня интересуют записи самих полей NEW.extra_fields - верно ли? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.04.2014, 15:11:46 |
|
||
|
update через суммирование из разных таблиц
|
|||
|---|---|---|---|
|
#18+
manfredima, https://dev.mysql.com/doc/refman/5.0/en/create-trigger.html Within the trigger body, you can refer to columns in the subject table (the table associated with the trigger) by using the aliases OLD and NEW. OLD.col_name refers to a column of an existing row before it is updated or deleted. NEW.col_name refers to the column of a new row to be inserted or an existing row after it is updated. Если вы пытаетесь с помощью manfredima Код: plsql 1. заставить триггер искать по всем полям исходной таблицы, то ничего у вас не получится. Кстати, поэтому я не верю, что manfredimaКод с SUBSTRING и POSITION осмысливать не надо: я так получаю нужные данные и он работает . Вот если бы кавычек не было, то это бы выглядело нормально. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.04.2014, 15:24:04 |
|
||
|
update через суммирование из разных таблиц
|
|||
|---|---|---|---|
|
#18+
я имел ввиду, что код работал до того , как я вставил его в триггер и ввел NEW.поля сейчас-то он, как раз, не работает с указанием ошибки в 4 строке, а в чем ошибка - я не понимаю, потому что и без кавычек выдаёт ошибку. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.04.2014, 15:34:05 |
|
||
|
update через суммирование из разных таблиц
|
|||
|---|---|---|---|
|
#18+
tanglirЕсли вы пытаетесь с помощью manfredima Код: plsql 1. заставить триггер искать по всем полям исходной таблицы, то ничего у вас не получится. почему - по всем? Разве NEW.extra_fields не обозначает конкретное поле в колонке extra_fields из управляющей таблицы? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.04.2014, 15:36:57 |
|
||
|
update через суммирование из разных таблиц
|
|||
|---|---|---|---|
|
#18+
Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.04.2014, 15:41:03 |
|
||
|
update через суммирование из разных таблиц
|
|||
|---|---|---|---|
|
#18+
manfredimaРазве NEW.extra_fields не обозначает конкретное поле в колонке extra_fields из управляющей таблицы?NEW.extra_fields - да 'NEW.extra_fields' - нет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.04.2014, 15:48:03 |
|
||
|
update через суммирование из разных таблиц
|
|||
|---|---|---|---|
|
#18+
строка "id":"10" именно такая изначально, я не могу убрать двойные кавычки ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.04.2014, 16:09:04 |
|
||
|
update через суммирование из разных таблиц
|
|||
|---|---|---|---|
|
#18+
на этот код Код: plsql 1. 2. 3. 4. 5. 6. 7. выдаёт ошибку "#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 6 " ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.04.2014, 16:40:30 |
|
||
|
update через суммирование из разных таблиц
|
|||
|---|---|---|---|
|
#18+
вообще, по записи, ошибка в строке 5. но и в случае заведомо неверной 'id:10' - ошибка всё равно есть ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.04.2014, 16:44:19 |
|
||
|
update через суммирование из разных таблиц
|
|||
|---|---|---|---|
|
#18+
manfredimaна этот код Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. выдаёт ошибку "#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 6 " ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.04.2014, 16:52:46 |
|
||
|
update через суммирование из разных таблиц
|
|||
|---|---|---|---|
|
#18+
автор#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '//' at line 8 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.04.2014, 17:20:14 |
|
||
|
update через суммирование из разных таблиц
|
|||
|---|---|---|---|
|
#18+
manfredimaавтор#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '//' at line 8 Это где вы такие сообщения находите? http://sqlfiddle.com/#!2/68304/1 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.04.2014, 18:01:06 |
|
||
|
update через суммирование из разных таблиц
|
|||
|---|---|---|---|
|
#18+
в PhpMyAdmin у моего провайдера ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.04.2014, 21:28:33 |
|
||
|
update через суммирование из разных таблиц
|
|||
|---|---|---|---|
|
#18+
так что же, в PhpMyAdmin такой триггер записать не получится? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.05.2014, 10:28:50 |
|
||
|
update через суммирование из разных таблиц
|
|||
|---|---|---|---|
|
#18+
вот такую запись принял PHPMyAdmin: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. т.е. после // должно стоять DELIMITER ; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2014, 21:46:34 |
|
||
|
|

start [/forum/topic.php?fid=47&msg=38630410&tid=1834888]: |
0ms |
get settings: |
6ms |
get forum list: |
19ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
87ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
63ms |
get tp. blocked users: |
1ms |
| others: | 208ms |
| total: | 401ms |

| 0 / 0 |
