Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Вставка через...
|
|||
|---|---|---|---|
|
#18+
Поможите если можите! Есть две таблицы(например table1 и table2), интересующие поля в которых EQ_ID, Manufacturer в первой и Man_id, Shortname во второй. Есть форма в которой пользователь выбирает наименование продукции и Shortname производителя. Надо чтобы при вставке из формы в первую таблицу вставлялось значение поля Man_id соответствующее Shortname, а во вторую не вставлялось вообще ничего. (Вставка идет через view я вляющееся объединением этих двух таблиц) Написал rule: ON INSERT TO table1 DO INSTEAD INSERT INTO table2 SELECT man_id FROM table2 WHERE shortname = new.shortname но чего-то не работает видимо я не очень понял работу NEW, а может чего ещЁ-))). Заранеее спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.08.2004, 10:00 |
|
||
|
Вставка через...
|
|||
|---|---|---|---|
|
#18+
если вставка через view, то почему правило висит на table1?.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.08.2004, 10:15 |
|
||
|
Вставка через...
|
|||
|---|---|---|---|
|
#18+
Звиняйте, очепятка вышла. Оно действительно на view ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.08.2004, 11:23 |
|
||
|
Вставка через...
|
|||
|---|---|---|---|
|
#18+
Cколько ни пытался, ничего хорошего с rule у меня не получилось, не понимает он new i old. Сделай то же на trigger before post и всё будет OK. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.08.2004, 12:06 |
|
||
|
Вставка через...
|
|||
|---|---|---|---|
|
#18+
Не пользовался еще триггерами, если можно поподробнее объясни ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.08.2004, 13:18 |
|
||
|
Вставка через...
|
|||
|---|---|---|---|
|
#18+
ASPU1Звиняйте, очепятка вышла. Оно действительно на view Ну, сделай над собой усилие, приведи реальный код, а не краткое его изложение. vadimmCколько ни пытался, ничего хорошего с rule у меня не получилось, не понимает он new i old. как бы это помягше... не вводи людей в заблуждение. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.08.2004, 23:19 |
|
||
|
Вставка через...
|
|||
|---|---|---|---|
|
#18+
Спорить не буду, может и не прав, пример сейчас не вспомню, но трабла была. И, как говорится, зуб теперь на rules имею, но надо будет ещё раз попробовать как-нибудь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.08.2004, 23:39 |
|
||
|
Вставка через...
|
|||
|---|---|---|---|
|
#18+
Sad SpiritНу, сделай над собой усилие, приведи реальный код, а не краткое его изложение. Извини,Печальный, но что ты подразумеваешь под реальным кодом? Правило приведено реально, без цензуры и сокращений. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.08.2004, 12:35 |
|
||
|
Вставка через...
|
|||
|---|---|---|---|
|
#18+
ASPU1 Написал rule: ON INSERT TO table1 DO INSTEAD INSERT INTO table2 SELECT man_id FROM table2 WHERE shortname = new.shortname ASPU1Оно действительно на view А подумать? __ Вот примерно так вешается руле НА вид, обозванный "tree_leaf" : Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.08.2004, 13:03 |
|
||
|
Вставка через...
|
|||
|---|---|---|---|
|
#18+
ДА! Оно действительно на вью висит и в такой форме как ты приводишь обязательно бы работало,НО требуется выполнение дополнительного условия и именно ЭТО не получается. Причем если значение поля shortname фактически вставляется, то все тоже работает, но надо сделать так чтобы оно выбиралось но не вставлялось. УХ. Изврат конечно но как это реализовать попроще не придумал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.08.2004, 14:56 |
|
||
|
Вставка через...
|
|||
|---|---|---|---|
|
#18+
"ОНО" висит на TO table1 Вот разве что table1 и есть это "вью", но, исходя из текста первого твоего поста это не так. Если прочитать твой первый пост, то поставленная тобой задача и текст вью не стыкуется никоим разом. (надо вставить что-то в 1-ю, а втавляешь что-то во вторую... вешаешь рулю на таблицу, а не на вью, и прочая х.йня..., уже и букв нематерных не хватает) И вообще, очень похоже что вопрошающий - попросту бот. (Логики никакой). Приведи текст самого вью. И текст руле на инсерт _В НЕГО_. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.08.2004, 15:59 |
|
||
|
Вставка через...
|
|||
|---|---|---|---|
|
#18+
Похоже что бот как раз отвечающий, хотя и знает много матерных букв. Извинился же, сказал ОПЕЧАТКА. Правило висит на VIEW, которое получено соединением таблиц table1 и table2. Требуется вставить в table1 значение id, которое соответствует задаваемому пользователем shortname (чтоб о не цифири какие-то из списка выбирал, а конкретно по названию), но при этом сам shortname в table2 вставлять не надо чтобы не было дублирования. Как понятнее написать не знаю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.08.2004, 11:04 |
|
||
|
Вставка через...
|
|||
|---|---|---|---|
|
#18+
ASPU1Как понятнее написать не знаю. Понятнее будет на SQL. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.08.2004, 11:56 |
|
||
|
Вставка через...
|
|||
|---|---|---|---|
|
#18+
Ну, давай по частям ASPU1Поможите если можите! Есть две таблицы(например table1 и table2), интересующие поля в которых EQ_ID, Manufacturer в первой и Man_id, Shortname во второй. Есть форма в которой пользователь выбирает наименование продукции и Shortname производителя. Надо чтобы при вставке из формы в первую таблицу вставлялось значение поля Man_id соответствующее Shortname, а во вторую не вставлялось вообще ничего. (Вставка идет через view я вляющееся объединением этих двух таблиц). Во первых никакого вью для подстановки из справочника не нужно, а нужен компонент (комбо) с источником строк из 2-й таблицы, а данными - из перовй, т.е. и форму и поля достаточно построить на основе только 1-й... ну, да ладно, решаем как предлагается автором - считаем, что у тебя есть вью наподобие: Код: plaintext 1. 2. 3. пишем именно то, что у тебя написано в тексте "правило для в1" - "вставить в т1 значение т2" Код: plaintext 1. 2. 3. 4. 5. а не "правило для т1" - "вставить в т2 значение т2", как пишешь ты ASPU1 ON INSERT TO table1 DO INSTEAD INSERT INTO table2 SELECT man_id FROM table2 WHERE shortname = new.shortname а бот и должен отвечать. а отличается тем, что отвечая должен не думать. Что и имеет место быть. :о) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.08.2004, 12:09 |
|
||
|
Вставка через...
|
|||
|---|---|---|---|
|
#18+
Sad Spirit ASPU1Как понятнее написать не знаю. Понятнее будет на SQL. Извиняюсь, что не написал оригинал сразу, просто та машина на которой это все делается не имеет выхода в и-нет и в локалку, поэтому писал по памяти. Итак как все это есть на самом деле: SELECT eq_id, iscomplex, number, name, man_id, shortname, fullname, address FROM (equipment JOIN manufacturer ON ((equipment.manufacturer = manufacturer.man_id))); Это view1 на котором и висит правило. CREATE RULE ins_rul AS ON INSERT TO view1 DO INSTEAD INSERT INTO equipment (name, number, iscomplex, manufacturer) VALUES (new.name, new.number, new.iscomplex, (SELECT manufacturer.man_id FROM manufacturer WHERE (manufacturer.shortname = new.shortname))); Это текст руля. Таблицы: equipment(eq_id, iscomplex, number, name, manufacturer) и manufacturer(man_id, shortname, name, address). В скобках указаны столбцы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.08.2004, 14:52 |
|
||
|
Вставка через...
|
|||
|---|---|---|---|
|
#18+
1/ Во первых ты наврал с текстом view1 (если у тебя действительно именно так обзываются поля в таблицах) - придется писать что-то наподобие: Код: plaintext 1. 2. 3. 4. 5. 2/ но если это все опять "о-пи.чатка", то сделай просто тест: Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2004, 11:12 |
|
||
|
Вставка через...
|
|||
|---|---|---|---|
|
#18+
Блин, можешь не верить, но это все от спешки. Видит БГ темнить не пытаюсь, но концентрируясь на объяснении желаемого почему-то забываются мелочи:-(( В таблице manufacturer действительно нет поля name, а есть fullname. Простой INSERT в это view не прокатывает поэтому и пишу рулю. Суть в том что в поле shortname вставлять НИЧЕГО не надо. НАДО вставлять в поле manufacturer таблицы equipment значение manufacturer.man_id, соответсвующее указываемому пользователем shortname. З.Ы. Самая сложная штука в жизни - взаимопонимание;-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2004, 11:51 |
|
||
|
Вставка через...
|
|||
|---|---|---|---|
|
#18+
ерш твою медь. Ты запрос на вставку ВО ВЬЮ, приведенный выше запускал? 2/ но если это все опять "о-пи.чатка", то сделай просто тест: INSERT INTO view1(eq_id, iscomplex, number, name, shortname) VALUES (1, 0, 0, 'ASSA','assa'); и накласть на то, что надо, что не надо. этим запросом ты формируешь твое NEW (для руле). А уж оно разбирается, что там ему надо, что нет. ЗЫ: Понимание сложно, когда бестолковка в игноре. Вот если ее слегка сморщить, глядишь и получится. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2004, 15:27 |
|
||
|
|

start [/forum/topic.php?fid=53&msg=32650626&tid=2007718]: |
0ms |
get settings: |
5ms |
get forum list: |
10ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
163ms |
get topic data: |
6ms |
get forum data: |
2ms |
get page messages: |
32ms |
get tp. blocked users: |
1ms |
| others: | 218ms |
| total: | 443ms |

| 0 / 0 |
