Страница 1 из 1
Не удается создать индекс
Добавлено: 17 окт 2007, 19:08
BeeP
Понимаю, что вопрос глупый, но он достаточно срочный
Мне не создать первичный ключ, точнее он создается, но криво
я работаю с 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
Добавлено: 17 окт 2007, 19:24
kdv
работайте в sql editor. т.е. create table пишите руками. Тогда гарантированно будет так, как нужно. Что там выделяется красным в "оглупляторе", и почему это "не работает" - даже неинтересно.
Добавлено: 17 окт 2007, 22:07
BeeP
kdv писал(а):работайте в sql editor. т.е. create table пишите руками. Тогда гарантированно будет так, как нужно. Что там выделяется красным в "оглупляторе", и почему это "не работает" - даже неинтересно.
попробовала - тоже самое
Добавлено: 17 окт 2007, 22:54
kdv
попробовала - тоже самое
что пробовали. написать create table вручную? не верю.
И потом, Вам уже ответили, что у созданной таблицы в IBE уже есть первичный ключ. Индекс которого Вы видите.
читайте внимательнее сообщения об ошибках
Attempt to define a second PRIMARY KEY for the same table.
ясно же пишет, что Вы ВТОРОЙ первичный ключ на таблицу пытаетесь добавить.
Добавлено: 17 окт 2007, 23:23
hvlad
Красный - или потому что ПК, или потому что статистика отсутствует.
Индексы создаются по коммиту.
Добавлено: 18 окт 2007, 14:22
BeeP
hvlad писал(а):Красный - или потому что ПК, или потому что статистика отсутствует.
Индексы создаются по коммиту.
спасибо, забыла сделать commit
сделала, пришла к результату номер 1
индекс есть, но такого вида
RDB$PRIMARY
установила FireBird на другом компе, перекинула базу. Все проделала тоже самое и все в порядке.
видимо какой-то конфликт, потому что у меня когда-то стоял FireBird 2.0, но я его снесла.
А теперь стоит FireBird 1.5
но видимо что-то недоубилось
Добавлено: 18 окт 2007, 14:30
BeeP
kdv писал(а):попробовала - тоже самое
что пробовали. написать create table вручную? не верю.
И потом, Вам уже ответили, что у созданной таблицы в IBE уже есть первичный ключ. Индекс которого Вы видите.
читайте внимательнее сообщения об ошибках
Attempt to define a second PRIMARY KEY for the same table.
ясно же пишет, что Вы ВТОРОЙ первичный ключ на таблицу пытаетесь добавить.
чему вы не верите? тому что я могла написать create table вручную?
эта процедура написана в массе литературы, более того, даже если я не могу воспользоватся книгой, то я тупо могу перейти в "оглупляторе", как вы изволили выразиться, на закладку DDL и сделать по образу и подобию.
вы уже написали 2 ответа и ни в одном из них ничего умного... если я не умею пользоваться FireBird и индексами, то это только в силу того, что до этого я работала с MS SQL Server
и даже перед тем как задать этот вопрос на этом форуме я обратилась к нескольким знакомым и выяснила, что тоже самое у них работает.
и только после этого я обратилась на форум, подразумевая не то, что у меня отупение последней стадии, а именно нестандартаная ситуация.
так что если есть что ответить по делу, то с удовольствием прочитаю, а если нечего, то не утруждайте себя
Добавлено: 18 окт 2007, 17:20
kdv
вы уже написали 2 ответа и ни в одном из них ничего умного..
так что если есть что ответить по делу, то с удовольствием прочитаю, а если нечего, то не утруждайте себя
было очень приятно пообщаться. ДО СВИДАНИЯ.
логин BeeP удален за попытки установления собственных правил форума, за хамство, и за игнорирование корректных ответов.
p.s. надоело, честное слово.
http://www.sql.ru/forum/actualthread.as ... 83#1991850
Форум - это ускоренные курсы решения проблемы. Которые уже подразумевают наличие базовых знаний. А "блеяние" насчет "играл-играл, угадал все буквы, но не смог прочитать слово" - это не для форума.
Для получения базовых знаний нужно образование. Либо самообразование (т.е. чтение документации), либо обучение (т.е. курсы). Но форуме нет времени для подбора методики общения с каждым вопрашающим.
Есть планка. Не выполнил ее - иди "расти".