|
|
|
Активность записи.
|
|||
|---|---|---|---|
|
#18+
Есть таблица с данными: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2003, 18:02 |
|
||
|
Активность записи.
|
|||
|---|---|---|---|
|
#18+
Может я не понял сути, но: Чем не подходит юник по этим двум полям? Ведь null же... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2003, 18:28 |
|
||
|
Активность записи.
|
|||
|---|---|---|---|
|
#18+
uniq не подходит по причине "возникания" на дублирование строки типа (1,NULL)... 2 Денис, а почему не написать тригер? если пугает проблема мутирования, то здесь есть несколько решений... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2003, 18:30 |
|
||
|
Активность записи.
|
|||
|---|---|---|---|
|
#18+
да действительно возникает Но мне казалось что поля типа null на юник не реагируют.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2003, 18:33 |
|
||
|
Активность записи.
|
|||
|---|---|---|---|
|
#18+
Можно сделать проверку в процедурах (insert_sp,update_sp,...) и только через них и работать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2003, 18:35 |
|
||
|
Активность записи.
|
|||
|---|---|---|---|
|
#18+
они не влияют только если все поля индекса являются NULL'ами или в случае одного поля происходит так как вы сказали... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2003, 18:35 |
|
||
|
Активность записи.
|
|||
|---|---|---|---|
|
#18+
A ob func index ne dumal? Nu tam sum(active_flag = 1)? Postroiv indextype, konechno. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2003, 18:37 |
|
||
|
Активность записи.
|
|||
|---|---|---|---|
|
#18+
create unique index test_active on oappl.test (decode (active_flag,1,test_id,null)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.03.2003, 06:30 |
|
||
|
Активность записи.
|
|||
|---|---|---|---|
|
#18+
Во, спасибо, оно самое. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.03.2003, 10:06 |
|
||
|
Активность записи.
|
|||
|---|---|---|---|
|
#18+
> create unique index test_active on oappl.test (decode (active_flag,1,test_id,null)) bravo! krasivoe reshenie! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.03.2003, 10:58 |
|
||
|
Активность записи.
|
|||
|---|---|---|---|
|
#18+
to Denis Popov: А как насчёт enable novalidate? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.03.2003, 11:45 |
|
||
|
Активность записи.
|
|||
|---|---|---|---|
|
#18+
Теперь вот сижу и думаю: задачка-то посложнее. Есть snapshot-репликация, и хотелось бы ограничение уникальности по active_flag сделать отложенным (deferrable). Ему требуется неуникальный индекс, но как совместиь все это- не пойму. Т.е. такая конструкция не проходит: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. В принципе решение есть: писать в active_flag не 1, а test_id. Быть проще, в общем. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.03.2003, 11:53 |
|
||
|
Активность записи.
|
|||
|---|---|---|---|
|
#18+
2softbuilder@inbox.ru: Это OLTP-таблица, так что на каждый чих включать/выключать ограничения не получится. И умилился: все-таки решение такой задачи что "ручками", что с использованией Function-Based Indexes по своему принципу одинаково. Ораклы, ничтоже сумнящеся, добавляют поле в таблицу, куда складывают вычисляемые значения. Удобство лишь в том, что ты об этом явно не знаешь, хотя м.б. и зря. Вот смотри, вся кухня выползает: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.03.2003, 17:29 |
|
||
|
|

start [/forum/topic.php?fid=52&msg=32113877&tid=1991618]: |
0ms |
get settings: |
9ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
177ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
51ms |
get tp. blocked users: |
1ms |
| others: | 240ms |
| total: | 512ms |

| 0 / 0 |
