![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как добавить существующeму полю NOT NULL [D6, IB6.x]
Zn © (2003-10-16 12:22:00)
В таблице есть поле, которое я хочу сделать первичным индексом. Для начала необходимо добавить ему NOT NULL. Просто создать новое, а потом перенести значения не могу, так как есть связи с другими таблицами. Подскажите, что тут можно сделать?
Zn (2003-10-17 18:34:00) [1]
> Val © (16.10.03 13:45) [7]
Вы правы, но я ещё только учусь...
Val (2003-10-16 14:45:00) [2]
>Romkin © (16.10.03 14:17) [8]
добавим еще и необходимость наличия соотв. прав.
Romkin (2003-10-16 14:17:00) [3]
ЗАтрагивая системные таблицы, вы сможете повторить это на любом IB/FB сервере :) Насчет остальных серверов БД - у каждого свое, у MSSQL для этого, кажется, хранимая процедура есть :)))
Val (2003-10-16 13:45:00) [4]
>Zn (16.10.03 12:54) [4]
..Нашёл IBExpert. Попробую через него...
Для вас же лучше научиться делать это классически, не затрагивая системных таблиц, чтобы вы смогли повторить это действие позднее на любом SQL-сервере.
Romkin (2003-10-16 13:12:00) [5]
Нет, правит системные таблицы, он еще и запрос пишет, можно посмотреть
Reindeer Moss Eater (2003-10-16 12:57:00) [6]
Думаю IBExpert делает это через пересоздание таблицы или поля
Zn (2003-10-16 12:54:00) [7]
> Val © (16.10.03 12:28) [1]
Думал, это как-то можно обойти...
> Romkin © (16.10.03 12:29) [2]
Спасибо! Нашёл IBExpert. Попробую через него.
Reindeer Moss Eater (2003-10-16 12:48:00) [8]
CREATE TABLE TEST_TAB (ID INTEGER);
INSERT INTO TEST_TAB VALUES(1);
COMMIT;
CREATE DOMAIN NOT_NULL_INT INTEGER NOT NULL;
ALTER TABLE TEST_TAB ALTER ID TYPE NOT_NULL_INT;
ALTER TABLE TEST_TAB ADD CONSTRAINT PK_TEST_TAB PRIMARY KEY(ID);
Romkin (2003-10-16 12:29:00) [9]
Проще всего скачать IBExpert и воспользоваться им. Сложнее - поправить системную таблицу.
Только потом в любом случае backup/restore надо, предварительно проконтролировав, чтобы в этом поле NULL не было
Val (2003-10-16 12:28:00) [10]
так отцепите для начала все ограничения и триггера от таблицы, которую собрались модифицировать.