Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
18.05.2021, 22:28
|
|||
---|---|---|---|
|
|||
Триггер MySQL |
|||
#18+
Есть триггер, который при обновлении запрещает использовать одинаковые имена в таблице. Но когда я у поля меняю не имя, а другое поле, то срабатывает триггер, что я пытаюсь использовать одинаковое имя. В чем проблема? Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
скрин : https://prnt.sc/1334u4q таблица имеет вид id_game |name|path|price|system_param|description|year_made||developer|size_game ... |
|||
:
Нравится:
Не нравится:
|
|||
|
18.05.2021, 22:42
|
|||
---|---|---|---|
Триггер MySQL |
|||
#18+
polygraph Код: sql 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
|
18.05.2021, 22:54
|
|||
---|---|---|---|
|
|||
Триггер MySQL |
|||
#18+
Извиняюсь, я не так написал, там вот так Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
... |
|||
:
Нравится:
Не нравится:
|
|||
|
18.05.2021, 22:55
|
|||
---|---|---|---|
|
|||
Триггер MySQL |
|||
#18+
Триггер срабатывает если я хочу изменить у поля не имя, а другое поле (на имя тоже срабатывает) ... |
|||
:
Нравится:
Не нравится:
|
|||
|
18.05.2021, 23:08
|
|||
---|---|---|---|
Триггер MySQL |
|||
#18+
polygraph, Триггер срабатывает на всю запись, а не на поле. Запись в таблице уже есть, поэтому EXISTS(SELECT 1 FROM game WHERE name = NEW.name) не пройдет, он среагирует на текущую запись. В триггере на UPDATE надо проверять записи, не совпадающие с изменяемой записью по первичному ключу. Если, допустим, первичный ключ - это поле id, то как-то так: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
Хотя, замечу, странная идея контролировать уникальность триггерами. Для этого есть Unique Indexes ... |
|||
:
Нравится:
Не нравится:
|
|||
|
19.05.2021, 17:25
|
|||
---|---|---|---|
Триггер MySQL |
|||
#18+
polygraph Извиняюсь, я не так написал, там вот так Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
Не проще ли не мучиться, а создать уникальный индекс? Такой триггер всё равно не рабочий. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
19.05.2021, 23:47
|
|||
---|---|---|---|
|
|||
Триггер MySQL |
|||
#18+
MasterZiv, >Такой триггер всё равно не рабочий. Почему? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
20.05.2021, 08:15
|
|||
---|---|---|---|
Триггер MySQL |
|||
#18+
Alex_Ustinov Почему? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
20.05.2021, 13:40
|
|||
---|---|---|---|
|
|||
Триггер MySQL |
|||
#18+
Akina поправленный вариант Даже поправленный вариант будет работать только на MyISAM, где транзакций нет в принципе, а любое чтение - грязное. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
20.05.2021, 14:23
|
|||
---|---|---|---|
Триггер MySQL |
|||
#18+
Dimitry Sibiryakov Даже поправленный вариант будет работать только на MyISAM, где транзакций нет в принципе, а любое чтение - грязное. А вот fiddle упорно утверждает, что это не так. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
|
start [/forum/topic.php?fid=47&tablet=1&tid=1828072]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
3596ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
56ms |
get tp. blocked users: |
2ms |
others: | 12ms |
total: | 3712ms |
0 / 0 |