|
Ошибка "subquery returns more than 1 row" в "after update" триггере
|
|||
---|---|---|---|
#18+
У меня есть две таблицы, test1 и test2, данные в test2 зависят от данных в test1 и я создал триггер after update который после изменения данных в test1 обновляет test2 Все работает если у меня в таблице всего 1 строка, тогда триггер срабатывает, но если строк больше одной, тогда выдает ошибку subquery returns more than 1 row Вот сам триггер: Код: plsql 1. 2. 3.
Помогите пожалуйста, что можно сделать чтобы я мог работать с множеством строк, а не с одной? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2022, 18:34 |
|
Ошибка "subquery returns more than 1 row" в "after update" триггере
|
|||
---|---|---|---|
#18+
trepol что можно сделать Забыть навсегда про подзапросы в подобных случаях и использовать многотабличный UPDATE. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2022, 18:37 |
|
Ошибка "subquery returns more than 1 row" в "after update" триггере
|
|||
---|---|---|---|
#18+
Akina, А можете привести пожалуйста пример с этим многотабличным update? Даже не слышал про такое и не понимаю как тут это должно выглядеть ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2022, 19:04 |
|
Ошибка "subquery returns more than 1 row" в "after update" триггере
|
|||
---|---|---|---|
#18+
trepol , https://dev.mysql.com/doc/refman/8.0/en/update.html Multiple-table syntax : Код: sql 1. 2. 3.
... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2022, 19:48 |
|
Ошибка "subquery returns more than 1 row" в "after update" триггере
|
|||
---|---|---|---|
#18+
trepol А можете привести пожалуйста пример с этим многотабличным update? Даже не слышал про такое и не понимаю как тут это должно выглядеть MySQL, update multiple tables with one query ... |
|||
:
Нравится:
Не нравится:
|
|||
16.02.2022, 08:17 |
|
Ошибка "subquery returns more than 1 row" в "after update" триггере
|
|||
---|---|---|---|
#18+
trepol У меня есть две таблицы, test1 и test2, данные в test2 зависят от данных в test1 и я создал триггер after update который после изменения данных в test1 обновляет test2 Все работает если у меня в таблице всего 1 строка, тогда триггер срабатывает, но если строк больше одной, тогда выдает ошибку subquery returns more than 1 row Вот сам триггер: Код: plsql 1. 2. 3.
Помогите пожалуйста, что можно сделать чтобы я мог работать с множеством строк, а не с одной? У вас в одном или в обоих местах вместо одной записи (значения) возвращается множество. Для простоты прилепите к каждому LIMIT 1 Код: sql 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
16.02.2022, 12:11 |
|
Ошибка "subquery returns more than 1 row" в "after update" триггере
|
|||
---|---|---|---|
#18+
trepol, на My SQL никогда триггеры не писал, но полагаю, что проблема в том, что внутри триггера Вы обращаетесь не к таблице с изменяемыми значениями, а вообще ко всей таблице test1. В MS SQL для этого в триггере есть дополнительные таблицы inserted и updated. Вот тут надо было бы использовать inserted. Но у вас тут триггер по одной строке. Судя по документации тут вообще другой синтаксис https://dev.mysql.com/doc/refman/8.0/en/trigger-syntax.html Будет что-то типа: UPDATE database.test2 SET test2.value1 = NEW.value1 * 2 WHERE test2.id = NEW.id; где NEW - этот объект измененной строки (а не таблица строк). ... |
|||
:
Нравится:
Не нравится:
|
|||
20.02.2022, 20:35 |
|
Ошибка "subquery returns more than 1 row" в "after update" триггере
|
|||
---|---|---|---|
#18+
trepol У меня есть две таблицы, test1 и test2 Структуры обеих таблиц (полные неизменённые CREATE TABLE) в студию. trepol данные в test2 зависят от данных в test1 Как именно? Пример данных в таблицах (в виде INSERT INTO), и подробное пояснение, где, что, от чего и как именно зависит - со ссылками на конкретные записи и значения. trepol что можно сделать чтобы я мог работать с множеством строк, а не с одной? К всему, что выше - INSERT INTO в первую таблицу и требуемое после его выполнение состояние данных в обеих таблицах. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.02.2022, 21:29 |
|
|
start [/forum/topic.php?fid=47&gotonew=1&tid=1827773]: |
0ms |
get settings: |
8ms |
get forum list: |
5ms |
check forum access: |
1ms |
check topic access: |
1ms |
track hit: |
37ms |
get topic data: |
6ms |
get first new msg: |
4ms |
get forum data: |
1ms |
get page messages: |
172ms |
get tp. blocked users: |
1ms |
others: | 385ms |
total: | 621ms |
0 / 0 |