powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / CREATE CONSTRAINT LIKE UNIQUE INDEX .. WITH NOCHECK OPTION
7 сообщений из 7, страница 1 из 1
CREATE CONSTRAINT LIKE UNIQUE INDEX .. WITH NOCHECK OPTION
    #38670449
Фотография medoed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день!
В таблице уже есть задвоенные записи, разобрать их и удалить лишние невозможно. Но с завтрешнего дня хочется, чтобы задвоений не было.
В MSSQL (по памяти можно выкрутиться как то так):

Код: sql
1.
ALTER TABLE TEMP_DATA WITH NOCHECK ADD CONSTRAINT TEMP_DATA_C UNIQUE (ID)



Есть ли что то похожее в DB2, спасибо! DB2 Version : 9.7
A lot of Thanks :)
...
Рейтинг: 0 / 0
CREATE CONSTRAINT LIKE UNIQUE INDEX .. WITH NOCHECK OPTION
    #38670720
boogiman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Марк походу на Гаити отдыхает, никто кроме него не подскажет
Ответ, что DB2 это не умееет, тоже засчитывается
...
Рейтинг: 0 / 0
CREATE CONSTRAINT LIKE UNIQUE INDEX .. WITH NOCHECK OPTION
    #38670885
m&m
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
m&m
Гость
[quot medoed]Добрый день!
разобрать их и удалить лишние невозможно. [/src]

требования к системе не разрешают их удалять?
...
Рейтинг: 0 / 0
CREATE CONSTRAINT LIKE UNIQUE INDEX .. WITH NOCHECK OPTION
    #38670992
Mark Barinstein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
medoedВ таблице уже есть задвоенные записи, разобрать их и удалить лишние невозможно. Но с завтрешнего дня хочется, чтобы задвоений не было.Добрый день.
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
create or replace trigger TEMP_DATA_aiur
after insert or update of id on TEMP_DATA
referencing new as n
for each row
when (exists (select 1 from TEMP_DATA t where t.id=n.id having count(1)>1))
begin
  signal sqlstate '75001' set message_text='duplicate id';
end/
...
Рейтинг: 0 / 0
CREATE CONSTRAINT LIKE UNIQUE INDEX .. WITH NOCHECK OPTION
    #38671055
Фотография medoed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mark BarinsteinmedoedВ таблице уже есть задвоенные записи, разобрать их и удалить лишние невозможно. Но с завтрешнего дня хочется, чтобы задвоений не было.Добрый день.
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
create or replace trigger TEMP_DATA_aiur
after insert or update of id on TEMP_DATA
referencing new as n
for each row
when (exists (select 1 from TEMP_DATA t where t.id=n.id having count(1)>1))
begin
  signal sqlstate '75001' set message_text='duplicate id';
end/


Спасибо Марк, есть уже у нас один тригер на таблицу, но пропускает как то записи, сцобако.
Но там проверка задвоений, идет через функцию, попробуем переписать через нормальный триггер,без функции.
Спасибо...
P.S. Надеюсь, не отвлек вас из отпуска :-)
...
Рейтинг: 0 / 0
CREATE CONSTRAINT LIKE UNIQUE INDEX .. WITH NOCHECK OPTION
    #38671057
Фотография medoed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[quot m&m]medoedДобрый день!
разобрать их и удалить лишние невозможно. [/src]

требования к системе не разрешают их удалять?
Требования от бизнеса, там куча задействованных номеров, которые уже используются...
...
Рейтинг: 0 / 0
CREATE CONSTRAINT LIKE UNIQUE INDEX .. WITH NOCHECK OPTION
    #38672372
Mark Barinstein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
medoedсть уже у нас один тригер на таблицу, но пропускает как то записи, сцобако.
Но там проверка задвоений, идет через функцию, попробуем переписать через нормальный триггер,без функции.Вообще да, и мой предложенный метод не защитит от одновременной вставки в разных сессиях одинакового ключа.
Наверное, более надежным методом будет введение дополнительного поля и композитного индекса:
Код: sql
1.
2.
3.
alter table temp_data add id2 int not null default 0;
update temp_data set id2=rownumber() over (partition by id) - 1;
create unique index temp_data_u on temp_data(id, id2);
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / CREATE CONSTRAINT LIKE UNIQUE INDEX .. WITH NOCHECK OPTION
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]