Не удается создать индекс

Access Violation, некорректное выполнение запросов или вызовов API, ошибки утилит командной строки, в общем все, что вам мешает работать

Модераторы: kdv, dimitr

Ответить
BeeP

Не удается создать индекс

Сообщение BeeP » 17 окт 2007, 19:08

Понимаю, что вопрос глупый, но он достаточно срочный
Мне не создать первичный ключ, точнее он создается, но криво

я работаю с FireBird 1.5, через IB Expert

При создании новой таблицы с первичным ключем происходит следующее, все создается, транзакция проходит, но на закладке Index видно следующее

Код: Выделить всё

PK    Index                On field    Unique       Active    Sorting Statistics
1    RDB$PRIMARY     17       NEW_FIELD1    1    1    Ascending    0
причем значение поля Index выделено красным цветом

Если я пытаюсь добавить индекс к уже существующей таблице, например

Код: Выделить всё

ALTER TABLE EP
ADD CONSTRAINT PK_EP
PRIMARY KEY(EPNPP);
то при первом выполнении, вообще ничего не происходит, то есть что-то происходит и даже появляется такая инфа

Код: Выделить всё

		------ Performance info ------
Prepare time = 0ms
Execute time = 94ms
...
но индекс не добавляется

а при повторном запуске уже появляется сама ошибка

Код: Выделить всё

This operation is not defined for system tables.
unsuccessful metadata update.
STORE RDB$RELATION_CONSTRAINTS failed.
action cancelled by trigger (3) to preserve data integrity.
Attempt to define a second PRIMARY KEY for the same table.

ЗЫ: версия сервера у базы и в настройках соединения совпадают, т.е. 1.5. Во всяком случае мне сказали, что база именно версии 1.5

kdv
Forum Admin
Сообщения: 6595
Зарегистрирован: 25 окт 2004, 18:07

Сообщение kdv » 17 окт 2007, 19:24

работайте в sql editor. т.е. create table пишите руками. Тогда гарантированно будет так, как нужно. Что там выделяется красным в "оглупляторе", и почему это "не работает" - даже неинтересно.

BeeP

Сообщение BeeP » 17 окт 2007, 22:07

kdv писал(а):работайте в sql editor. т.е. create table пишите руками. Тогда гарантированно будет так, как нужно. Что там выделяется красным в "оглупляторе", и почему это "не работает" - даже неинтересно.
попробовала - тоже самое

kdv
Forum Admin
Сообщения: 6595
Зарегистрирован: 25 окт 2004, 18:07

Сообщение kdv » 17 окт 2007, 22:54

попробовала - тоже самое
что пробовали. написать create table вручную? не верю.
И потом, Вам уже ответили, что у созданной таблицы в IBE уже есть первичный ключ. Индекс которого Вы видите.

читайте внимательнее сообщения об ошибках
Attempt to define a second PRIMARY KEY for the same table.
ясно же пишет, что Вы ВТОРОЙ первичный ключ на таблицу пытаетесь добавить.

hvlad
Разработчик Firebird
Сообщения: 1244
Зарегистрирован: 21 мар 2005, 10:48

Сообщение hvlad » 17 окт 2007, 23:23

Красный - или потому что ПК, или потому что статистика отсутствует.
Индексы создаются по коммиту.

BeeP

Сообщение BeeP » 18 окт 2007, 14:22

hvlad писал(а):Красный - или потому что ПК, или потому что статистика отсутствует.
Индексы создаются по коммиту.
спасибо, забыла сделать commit
сделала, пришла к результату номер 1
индекс есть, но такого вида RDB$PRIMARY

установила FireBird на другом компе, перекинула базу. Все проделала тоже самое и все в порядке.

видимо какой-то конфликт, потому что у меня когда-то стоял FireBird 2.0, но я его снесла.
А теперь стоит FireBird 1.5

но видимо что-то недоубилось

BeeP

Сообщение BeeP » 18 окт 2007, 14:30

kdv писал(а):
попробовала - тоже самое
что пробовали. написать create table вручную? не верю.
И потом, Вам уже ответили, что у созданной таблицы в IBE уже есть первичный ключ. Индекс которого Вы видите.

читайте внимательнее сообщения об ошибках
Attempt to define a second PRIMARY KEY for the same table.
ясно же пишет, что Вы ВТОРОЙ первичный ключ на таблицу пытаетесь добавить.
чему вы не верите? тому что я могла написать create table вручную?
эта процедура написана в массе литературы, более того, даже если я не могу воспользоватся книгой, то я тупо могу перейти в "оглупляторе", как вы изволили выразиться, на закладку DDL и сделать по образу и подобию.

вы уже написали 2 ответа и ни в одном из них ничего умного... если я не умею пользоваться FireBird и индексами, то это только в силу того, что до этого я работала с MS SQL Server
и даже перед тем как задать этот вопрос на этом форуме я обратилась к нескольким знакомым и выяснила, что тоже самое у них работает.
и только после этого я обратилась на форум, подразумевая не то, что у меня отупение последней стадии, а именно нестандартаная ситуация.

так что если есть что ответить по делу, то с удовольствием прочитаю, а если нечего, то не утруждайте себя

kdv
Forum Admin
Сообщения: 6595
Зарегистрирован: 25 окт 2004, 18:07

Сообщение kdv » 18 окт 2007, 17:20

вы уже написали 2 ответа и ни в одном из них ничего умного..
так что если есть что ответить по делу, то с удовольствием прочитаю, а если нечего, то не утруждайте себя
было очень приятно пообщаться. ДО СВИДАНИЯ.
логин BeeP удален за попытки установления собственных правил форума, за хамство, и за игнорирование корректных ответов.


p.s. надоело, честное слово.

http://www.sql.ru/forum/actualthread.as ... 83#1991850

Форум - это ускоренные курсы решения проблемы. Которые уже подразумевают наличие базовых знаний. А "блеяние" насчет "играл-играл, угадал все буквы, но не смог прочитать слово" - это не для форума.
Для получения базовых знаний нужно образование. Либо самообразование (т.е. чтение документации), либо обучение (т.е. курсы). Но форуме нет времени для подбора методики общения с каждым вопрашающим.
Есть планка. Не выполнил ее - иди "расти".

Ответить