Длинна PK

Dik76
Дата: 26.10.2005 15:28:58
В продолжение темы про использование name в качестве PK...

Делаю (FB 1.5.2):
CREATE TABLE KEY_NAME (
    NAME  VARCHAR(500) NOT NULL
);

ALTER TABLE KEY_NAME ADD CONSTRAINT PK_KEY_NAME PRIMARY KEY (NAME);
прокатывает, что для меня несколько неожиданно Картинка с другого сайта.. Пытаюсь добавить индекс, как и ожидается - посыл. Я так понимаю на размер индекса для PK ограничений нет?
Евгений Путилин
Дата: 26.10.2005 15:31:12
Dik76
Я так понимаю на размер индекса для PK ограничений нет?

Отдельных для PK нет, но размер любого индекса имеет ограничения.
Dik76
Дата: 26.10.2005 15:36:56

Евгений

ЕП> Dik76
ЕП> Я так понимаю на размер индекса для PK ограничений нет?
ЕП>
ЕП> Отдельных для PK нет, но размер любого индекса имеет ограничения.
Э... про ограничения на размер индекса я знаю.
Я думал, что раз PK строится на основе индекса,
то и он имеет такие же ограничения, как и любой другой индекс...

--
Dik76

Posted via ActualForum NNTP Server 1.3

Amris Mirddin
Дата: 26.10.2005 15:40:36
Dik76
В продолжение темы про использование name в качестве PK...

Делаю (FB 1.5.2):
CREATE TABLE KEY_NAME (
    NAME  VARCHAR(500) NOT NULL
);

ALTER TABLE KEY_NAME ADD CONSTRAINT PK_KEY_NAME PRIMARY KEY (NAME);
прокатывает, что для меня несколько неожиданно


Не верю (С). Коммит был? 1.5.2 нету, на LI-V1.5.3.4842 Firebird 1.5 не прокатывает.
Dik76
Дата: 26.10.2005 15:45:38

Amris


AM> Не верю (С). Коммит был? 1.5.2 нету, на LI-V1.5.3.4842 Firebird 1.5 не
AM> прокатывает.

Переконектился :) таблица на месте и ключ varchar(500).

--
Dik76

Posted via ActualForum NNTP Server 1.3

kdv
Дата: 26.10.2005 15:46:46
1. при создании PK автоматически строится индекс. индексы для PK/FK в IB/FB руками создавать НЕ НАДО.

2. про PK по varchar(512) - не верю. FB 1.5.2 и все остальные кроме FB 2
должны сообщать (и сообщают)
unsuccessful metadata update.
key size too big for index PK_KEY_NAME.

3. уже давно отгремели споры по поводу естественных ключей. Естественные ключи признаны оправданными в микроскопическом числе случаев. В подавляющем большинстве нужно строить суррогатный ключ.

я уже писал - представь себе FK из другой таблицы на этот ПК varchar(512), даже если ты его создашь в FB 2.
fynda
Дата: 26.10.2005 15:51:18

kdv wrote:

> 3. уже давно отгремели споры по поводу естественных ключей. Естественные
> ключи признаны оправданными в микроскопическом числе случаев.


А для не заставших гром тех споров - можно списочек? Просто ради интереса?

Posted via ActualForum NNTP Server 1.3

Карабас Барабас
Дата: 26.10.2005 15:53:02
FB 1.5.2 ответил:

/*******************************************************************************
The next statement causes the following error:

This operation is not defined for system tables.
unsuccessful metadata update.
key size too big for index PK_KEY_NAME.
*******************************************************************************/

Posted via ActualForum NNTP Server 1.3

kdv
Дата: 26.10.2005 16:00:50
А для не заставших гром тех споров - можно списочек? Просто ради интереса?


не помню я. общий тезис такой - ПК должен быть неизменяемым на протяжении жизни записи. Если это условие соблюдается (а его для ЕК обеспечить очень сложно), и ПК не вызывает проблем с объемом данных или производительностью при ссылке на него тучи FK - то можно. Собственно, все.
Dik76
Дата: 26.10.2005 16:09:51

kdv


В общем большие строки вставить не удается, но размер реально большой.
Создавал через IBExpert. Даже повторить на новой базе удалось...
Хочешь БД скину с глюком?

--
Dik76

Posted via ActualForum NNTP Server 1.3