|
|
|
Как удалить автоиндекс
|
|||
|---|---|---|---|
|
#18+
Доброго всем дня. Имеем IDS 9.40 TC6 Windows XP. Можно как-то удалить автоиндекс? Вот пример Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. Имя автоиндекса получаю запросом Код: plaintext 1. 2. А вот как его собаку такую дропнуть? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2006, 16:53 |
|
||
|
Как удалить автоиндекс
|
|||
|---|---|---|---|
|
#18+
удалите primary key ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2006, 17:38 |
|
||
|
Как удалить автоиндекс
|
|||
|---|---|---|---|
|
#18+
Что-то у меня через DROP INDEX и ALTER TABLE не получается. Получилось дропнуть только через dbaccess. Т.е. с помощью SQL-операторов удалть автоиндекс нельзя? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2006, 09:25 |
|
||
|
Как удалить автоиндекс
|
|||
|---|---|---|---|
|
#18+
sysmasterЧто-то у меня через DROP INDEX и ALTER TABLE не получается. Получилось дропнуть только через dbaccess. Т.е. с помощью SQL-операторов удалть автоиндекс нельзя?Защита от идиота, информикс не позволяет констрейнту (P,F,U) существовать без индекса, поэтому удалить автоиндекс нельзя. Создавайте таблицу, добавляйте свой индекс, потом уж констрейнт, тогда автоиндекса не будет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2006, 09:39 |
|
||
|
Как удалить автоиндекс
|
|||
|---|---|---|---|
|
#18+
авторЗащита от идиота, информикс не позволяет констрейнту (P,F,U) существовать без индекса, поэтому удалить автоиндекс нельзя. Создавайте таблицу, добавляйте свой индекс, потом уж констрейнт, тогда автоиндекса не будет. Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2006, 09:45 |
|
||
|
Как удалить автоиндекс
|
|||
|---|---|---|---|
|
#18+
Журавлев ДенисЗащита от идиота, информикс не позволяет констрейнту (P,F,U) существовать без индекса, ....Хотя может это и не защита, а просто алгоритм проверки констрейнта таков, что без индекса не работает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2006, 09:58 |
|
||
|
Как удалить автоиндекс
|
|||
|---|---|---|---|
|
#18+
sysmasterЧто-то у меня через DROP INDEX и ALTER TABLE не получается. Получилось дропнуть только через dbaccess. Т.е. с помощью SQL-операторов удалть автоиндекс нельзя? В предыдущем сообщении Тан ведь однозначно сказала, что удалить автоиндекс можно только удалив соответствующий констрейнт. Т.е. для удаления автоиндекса, созданного сервером для реализации ограничения первичного ключа, необходимо просто удалить это ограничение первичного ключа. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2006, 10:51 |
|
||
|
Как удалить автоиндекс
|
|||
|---|---|---|---|
|
#18+
Журавлев Денис Журавлев ДенисЗащита от идиота, информикс не позволяет констрейнту (P,F,U) существовать без индекса, ....Хотя может это и не защита, а просто алгоритм проверки констрейнта таков, что без индекса не работает. Если бы были еще способы проверки на уникальность без построения уникального индекса, то, возможно, они бы применялись, а так - построение индекса остается единственным МЕХАНИЗМОМ реализации ограничений первичного ключа, на уникальность и, заодно, и связности (вторичного ключа). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2006, 10:56 |
|
||
|
Как удалить автоиндекс
|
|||
|---|---|---|---|
|
#18+
vasilis , при всем моем к Вам уважении, как к Гуру Informix все же позвольте поспорить с Вами. Я не случайно привел SQL-примеры, что бы желающие могли попробовать проделать все сами. Повторюсь, что у меня не получилось ни с помощью drop index, ни с помощью alter table. Dbaccess рулит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2006, 11:17 |
|
||
|
Как удалить автоиндекс
|
|||
|---|---|---|---|
|
#18+
vasilisЕсли бы были еще способы проверки на уникальность без построения уникального индекса, то, возможно, они бы применялись, а так - построение индекса остается единственным МЕХАНИЗМОМ реализации ограничений первичного ключа, на уникальность и, заодно, и связности (вторичного ключа). Механизм-то он есть -- sql: Проверка на уникальность: select first 1 1 from table where pk=newvalue Проверка на внешние: select first 1 1 from detailtable where fk=deleting_pk Так и делает оффтопичная субд, но эффективность такого подхода ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2006, 11:41 |
|
||
|
Как удалить автоиндекс
|
|||
|---|---|---|---|
|
#18+
sysmaster vasilis , при всем моем к Вам уважении, как к Гуру Informix все же позвольте поспорить с Вами. Я не случайно привел SQL-примеры, что бы желающие могли попробовать проделать все сами. Повторюсь, что у меня не получилось ни с помощью drop index, ни с помощью alter table. Dbaccess рулит. приведите пример alter table, которым не получилось ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2006, 11:42 |
|
||
|
Как удалить автоиндекс
|
|||
|---|---|---|---|
|
#18+
sysmaster vasilis , при всем моем к Вам уважении, как к Гуру Informix все же позвольте поспорить с Вами. Я не случайно привел SQL-примеры, что бы желающие могли попробовать проделать все сами. Повторюсь, что у меня не получилось ни с помощью drop index, ни с помощью alter table. Dbaccess рулит.Дунул что-то хорошее? Поделишься? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2006, 11:43 |
|
||
|
Как удалить автоиндекс
|
|||
|---|---|---|---|
|
#18+
авторприведите пример alter table, которым не получилось Чуствую, что мне придется признать, что я не знаю как удалить PRIMARY KEY. Хотя внимательно просмотрел IBM Informix Guide to SQL: Syntax. Я пытался удалить primary key так: ALTER TABLE tabx DROP CONSTRAINT PRIMARY KEY (id) CONSTRAINT 141_59 и так ALTER TABLE tabx DROP CONSTRAINT PRIMARY KEY (id) и так ALTER TABLE tabx DROP CONSTRAINT 141_59 и еще куча всяких комбинаций. Всегда получал сообщение об 201 ошибке (A syntax error has occurred.) P.S. На мой взгляд разного рода подколы про траву здесь не совсем уместны. Такого рода форумы не для того ли и созданы, что бы помогать? Как то давно я тут вообще задавал вопрос про то как сдеалть Информиксу шатдаун и заново запустить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2006, 12:23 |
|
||
|
Как удалить автоиндекс
|
|||
|---|---|---|---|
|
#18+
sysmaster ALTER TABLE tabx DROP CONSTRAINT 141_59 и еще куча всяких комбинаций. Всегда получал сообщение об 201 ошибке (A syntax error has occurred.)Мне лень читать доку но я бы так попробовал: ALTER TABLE tabx DROP CONSTRAINT " 141_59"; Пробел вначале автообъектов не забывай. Поэтому лучше имена констрейнтам и индексам самому давать, чтоб не мучаться позже. И юник констрейнты тоже не помешают поверх уникальных индексов. Быстрая дока тут . sysmaster P.S. На мой взгляд разного рода подколы про траву здесь не совсем уместны. Такого рода форумы не для того ли и созданы, что бы помогать? Как то давно я тут Просто я прочитал и понял так: ты опять требуешь sql который дропает автоиндекс, хотя вродебы согласился что нельзя. Пиши понятней что те нада,че ты хош. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2006, 12:44 |
|
||
|
Как удалить автоиндекс
|
|||
|---|---|---|---|
|
#18+
авторALTER TABLE tabx DROP CONSTRAINT " 141_59"; Не работает. авторПросто я прочитал и понял так: ты опять требуешь sql который дропает автоиндекс, хотя вродебы согласился что нельзя. :) Ок. Бывает. Да я согласился, что нельзя через sql. А вот vasilis говорит, что вроде как можно. Хотя я тоже наверно не так понял его слова. :) Думаю вопрос можно закрыть. Если его можно дропнуть через dbaccess, так черт с ним, пусть будет через dbaccess. P.S. Всем спасибо за отклик. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2006, 13:10 |
|
||
|
Как удалить автоиндекс
|
|||
|---|---|---|---|
|
#18+
1. dbaccess все делает с помощью sql 2. ALTER TABLE tabx DROP CONSTRAINT " 141_59"; будет работать, если вы установите переменную DELIMIDENT, которая позволяет имена объектов базы данных писать в кавычках 3. ALTER TABLE tabx modify id serial; работает всегда ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2006, 13:26 |
|
||
|
Как удалить автоиндекс
|
|||
|---|---|---|---|
|
#18+
И так история продолжается. Я тут засел поэкспереминтировать с этим автоиндексом. Итак: Код: plaintext 1. 2. 3. 4. 5. Заполнили ее. Код: plaintext 1. Код: plaintext 1. 2. А вот запрос Код: plaintext 1. вернул нам имя сонстрейна 'u146_68'. Переменную Код: plaintext Теперь делаю Код: plaintext Запрос Код: plaintext 1. 2. Ничего не вернул. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2006, 15:59 |
|
||
|
Как удалить автоиндекс
|
|||
|---|---|---|---|
|
#18+
sysmaster Ничего не вернул. Все правильно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2006, 16:18 |
|
||
|
Как удалить автоиндекс
|
|||
|---|---|---|---|
|
#18+
sysmaster Ничего не вернул. При удалении ограничения (первичного ключа, в данном случае), по имени, удаляется индекс, автоматически сзданный при добавлении ограничения. Если бы уникальный индекс был создан явно до добавления первичного ключа, он бы не был удален... Вам же сразу сказали - удалять первичный ключ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2006, 18:01 |
|
||
|
Как удалить автоиндекс
|
|||
|---|---|---|---|
|
#18+
sysmaster vasilis , при всем моем к Вам уважении, как к Гуру Informix все же позвольте поспорить с Вами. Я не случайно привел SQL-примеры, что бы желающие могли попробовать проделать все сами. Повторюсь, что у меня не получилось ни с помощью drop index, ни с помощью alter table. Dbaccess рулит. Я так понял, что теперь спорить уже не будете ? :) Вроде как во всем разобрались... Или остались вопросы ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2006, 20:51 |
|
||
|
|

start [/forum/topic.php?fid=44&msg=33868865&tid=1608623]: |
0ms |
get settings: |
8ms |
get forum list: |
17ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
152ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
80ms |
get tp. blocked users: |
1ms |
| others: | 217ms |
| total: | 497ms |

| 0 / 0 |
