Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Триггер на сравнение значений
|
|||
|---|---|---|---|
|
#18+
Здравствуйте, написал триггер,который, по идее должен сравнивать созданный номер телефон, с текущим.Не совсем понимаю,что не так ( Точнее я понимаю, что он всегда выдает мне сообщение прописанное в условии "print ('Номер существует')", ибо триггер работает после добавления кода, а как сделать по другому? триггер instead of insert тоже не подходит,ибо таблица с ключами, или я не совсем понимаю, как это все сделать.Буду благодарен за помощь. код: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. Данный триггер, выдает сообщение при добавлении, даже если номер не совпадает с текущим. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.05.2019, 19:51 |
|
||
|
Триггер на сравнение значений
|
|||
|---|---|---|---|
|
#18+
Какое сообщение при добавлении какой командой? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.05.2019, 19:59 |
|
||
|
Триггер на сравнение значений
|
|||
|---|---|---|---|
|
#18+
Сообщение - print ('Номер существует') при Insert Номер существует при добавлении любого значения в таблицу "Номера" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.05.2019, 22:08 |
|
||
|
Триггер на сравнение значений
|
|||
|---|---|---|---|
|
#18+
darkvenger34, Созданный номер, текущий номер... вы какую то ерунду несете. Объясните по человечески что вы пытаетесь сделать и какой результат вам нужен? Вам нужно чтобы не добавлялись дубликаты? Создайте уникальный индекс или ограничение. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.05.2019, 22:30 |
|
||
|
Триггер на сравнение значений
|
|||
|---|---|---|---|
|
#18+
darkvenger34Здравствуйте, написал триггер,который, по идее должен сравнивать созданный номер телефон, с текущим.Не совсем понимаю,что не так ( Точнее я понимаю, что он всегда выдает мне сообщение прописанное в условии "print ('Номер существует')", ибо триггер работает после добавления кода, а как сделать по другому?Наверное, не с "текущим" (что такое "текущий"?), а с номенрами, которые есть в этой таблице? Тогда всё правильно, только нужно исключить из поиска тот номер, который вставлен, то есть Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. Или попробовать решить задачу другим способом (например, если задача "не допустить дубликаты", то можно сделать уникальный констрейн) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.05.2019, 01:13 |
|
||
|
Триггер на сравнение значений
|
|||
|---|---|---|---|
|
#18+
Если не понятно разяснил, то извиняюсь. У меня есть Таблица - Номера. В ней есть 2 поля: 1- Номер телефона 2- Код пациента (первичный ключ) Я хотел сделать триггер, который сравнивает созданное значения номера с текущим т.е если у меня есть номер - 123 я добавил номер 123, то будет вывод сообщения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.05.2019, 14:26 |
|
||
|
Триггер на сравнение значений
|
|||
|---|---|---|---|
|
#18+
alexeyvg, Ошибка в этой строке " and Номера.[ID] <> I.[ID]))" у меня нету поля ID в таблице номера Да, мне нужно сравнить созданный номер запросом Insert с текущими номера в таблице Номер, если он есть, то выполнить условие, например Print('..'). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.05.2019, 14:28 |
|
||
|
Триггер на сравнение значений
|
|||
|---|---|---|---|
|
#18+
darkvenger34alexeyvg, Ошибка в этой строке " and Номера.[ID] <> I.[ID]))" у меня нету поля ID в таблице номера Да, мне нужно сравнить созданный номер запросом Insert с текущими номера в таблице Номер, если он есть, то выполнить условие, например Print('..'). это ж "бублегум" триггер, какой к чёрту принт в консоль ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.05.2019, 14:30 |
|
||
|
Триггер на сравнение значений
|
|||
|---|---|---|---|
|
#18+
darkvenger34у меня нету поля ID в таблице номераКак это "нету поля ID в таблице номера", а это что?darkvenger342- Код пациента (первичный ключ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.05.2019, 14:49 |
|
||
|
Триггер на сравнение значений
|
|||
|---|---|---|---|
|
#18+
alexeyvg, Извиняюсь, не понял, что ID- подразумевался как код пациента, все работает,проблема решена.Спасибо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.05.2019, 14:53 |
|
||
|
Триггер на сравнение значений
|
|||
|---|---|---|---|
|
#18+
alexeyvg, правда я не знаю, что означает условие в запросе - "<>" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.05.2019, 14:54 |
|
||
|
Триггер на сравнение значений
|
|||
|---|---|---|---|
|
#18+
darkvenger34alexeyvg, правда я не знаю, что означает условие в запросе - "<>""Неравно", записывается в TSQL либо как <>, либо как != ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.05.2019, 15:00 |
|
||
|
Триггер на сравнение значений
|
|||
|---|---|---|---|
|
#18+
alexeyvg, ну !=, это очевидно а <> 1 раз вижу, впрочем, спасибо,тема решена. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.05.2019, 15:01 |
|
||
|
Триггер на сравнение значений
|
|||
|---|---|---|---|
|
#18+
alexeyvgdarkvenger34у меня нету поля ID в таблице номераКак это "нету поля ID в таблице номера", а это что?darkvenger342- Код пациента (первичный ключ) ох, не уверен я, что первичный ключ вдруг не окажется на самом деле foreign key, с учетом того, что пациент даже не знает darkvenger34что означает условие в запросе - "<>" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.05.2019, 15:01 |
|
||
|
Триггер на сравнение значений
|
|||
|---|---|---|---|
|
#18+
darkvenger34а <> 1 раз вижуМожно было выделить мышкой и нажать кнопку "F1" :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.05.2019, 15:04 |
|
||
|
Триггер на сравнение значений
|
|||
|---|---|---|---|
|
#18+
Это видимо рофл какой-то был, нет,Ключи первичный - Primary, если нужно. Мне нужен был этот триггер, потому что у меня есть таблицы с 3 ключами (Код пациента) В 1 - Номера Во 2- Пациенты В 3 - Регистрация на прием Триггер предназначается чтобы избавится от избыточности данных, я конечно не специалист в sql, ну так это вижу Если Номер существует, то он не заполняет его в таблицу а сразу переходит в таблицу Регистрация на прием, по существующему ключу по номеру. Возможно можно было сделать все гораздо проще, но,как есть. А первичный ключ я не поставил потому что, это не логично, если один и тот же пациент не может регистрироваться на прием дважды или >. //- Я не понял, что вы от меня хотели своим ответом,поэтому просто пояснил,зачем мне нужен был этот триггер. Всем спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.05.2019, 15:06 |
|
||
|
Триггер на сравнение значений
|
|||
|---|---|---|---|
|
#18+
darkvenger34Триггер предназначается чтобы избавится от избыточности данных, я конечно не специалист в sql, ну так это вижу Если Номер существует, то он не заполняет его в таблицу а сразу переходит в таблицу Регистрация на прием, по существующему ключу по номеру.Триггер сработает, когда вы уже заполнили таблицу неправильными данными. Поэтому нужно либо откатывать транзакцию, либо сделать триггер instead of, либо просто проверять наличие записи при перед вставкой данных, что самое правильное. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.05.2019, 15:14 |
|
||
|
Триггер на сравнение значений
|
|||
|---|---|---|---|
|
#18+
alexeyvg, я прописал вместо print - Rollback transaction, а уже в c# ( я просто все манипуляции демонстрирую в с#) через try catch перехожу к заполнению следующий таблицы, если запрос не принимается а так да, это скорее всего нужно делать через instead of, но я с ним особо не работал, да и триггеры мы особо не проходим, сам что-то пытаюсь делать.Я только на 3 курсе учусь, выковыриваюсь как могу) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.05.2019, 15:17 |
|
||
|
Триггер на сравнение значений
|
|||
|---|---|---|---|
|
#18+
alexeyvgdarkvenger34Триггер предназначается чтобы избавится от избыточности данных, я конечно не специалист в sql, ну так это вижу Если Номер существует, то он не заполняет его в таблицу а сразу переходит в таблицу Регистрация на прием, по существующему ключу по номеру.Триггер сработает, когда вы уже заполнили таблицу неправильными данными. Поэтому нужно либо откатывать транзакцию, либо сделать триггер instead of, либо просто проверять наличие записи при перед вставкой данных, что самое правильное. если в таблице номеров автор2- Код пациента (первичный ключ) то этому пациенту этот номер присвоить повторно инсертом не удастся и безо всякого триггера, как и никакой другой. только какому нибудь другому пациенту, у которого еще нет ни одного номера. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.05.2019, 15:17 |
|
||
|
Триггер на сравнение значений
|
|||
|---|---|---|---|
|
#18+
Посетитель, Я только сейчас это понял, что в принципе, что этот триггер выполняет теже функции как и первичный ключ, если я перехожу к другим таблицам через try catch..черт. Ну, ладно. везде есть плюсы, зато в курсаче опишу еще 1 триггер)))). Спасибо,что подметили фак..:) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.05.2019, 15:23 |
|
||
|
Триггер на сравнение значений
|
|||
|---|---|---|---|
|
#18+
ТС, ещё про constraint почитайте ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.05.2019, 15:24 |
|
||
|
Триггер на сравнение значений
|
|||
|---|---|---|---|
|
#18+
Konst_One, Да, я знаю,что такое ограничения, я не понял, как сделать,чтобы он запрещал добавлять номер телефона, который уже есть.Вроде триггер для этого больше подходит,ибо есть таблица inserted ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.05.2019, 15:26 |
|
||
|
Триггер на сравнение значений
|
|||
|---|---|---|---|
|
#18+
можно с UDF сделать (производительность просядет, но в некоторых случаях оправданно), пример с просторов интернета =) : Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.05.2019, 15:33 |
|
||
|
Триггер на сравнение значений
|
|||
|---|---|---|---|
|
#18+
darkvenger34Konst_One, Да, я знаю,что такое ограничения, я не понял, как сделать,чтобы он запрещал добавлять номер телефона, который уже есть.Вроде триггер для этого больше подходит,ибо есть таблица inserted каша у вас пока в голове. какую именно цель вы преследуете? запретить привязывать пациенту более одного номера телефона? или запретить привязывать один номер более чем одному пациенту? или запретить привязывать один номер одному пациенту более одного раза? это несколько разные задачи. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.05.2019, 15:39 |
|
||
|
Триггер на сравнение значений
|
|||
|---|---|---|---|
|
#18+
Посетитель, Отследить идентичный номер телефона, если он присутствует, то переходить к следующему действию. Я думал, что для этого понадобится триггер, чтобы после отслеживания прервать запрос через rollback transaction, но так как, я все эти манипуляции делаю в c#. Я также мог просто добавить ключ, как подметили выше и в catch засунуть необходимый код. Цель - данной темы, была отследить идентичный номер при добавлении, а дальше, там уже идет не много другая тема, задача уже решена и как я уже понял, ее можно было решить разным способами, основная цель выполнена, я отследил Идентичное значение из таблицы inserted с помощью триггера. Всем спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.05.2019, 15:45 |
|
||
|
|

start [/forum/topic.php?fid=46&fpage=101&tid=1687755]: |
0ms |
get settings: |
4ms |
get forum list: |
8ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
29ms |
get topic data: |
5ms |
get forum data: |
2ms |
get page messages: |
32ms |
get tp. blocked users: |
1ms |
| others: | 231ms |
| total: | 316ms |

| 0 / 0 |
