Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / asa 902. Есть две строки в таблице, на pk первой (id=1) ссылается множество записей других / 5 сообщений из 5, страница 1 из 1
06.10.2006, 10:30
    #34036759
PavelPavel
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
asa 902. Есть две строки в таблице, на pk первой (id=1) ссылается множество записей других
таблиц, на pk второй (id=2) - ничего. Мне надо снести первую, а id второй заменить на id первой (т.е. id второй должен быть = 1). Проблема в том, что атрибутов в таблице, кроме id, несколько десятков, и писать длинный апдейт, типа:
update table
set attribute001 = (select attribute001 from table where id = 2),
attribute002 = (select attribute001 from table where id = 2),
...
attribute999 = (select attribute999 from table where id = 2)
where id = 1;

Возможно туплю. Заранее спасибо
...
Рейтинг: 0 / 0
06.10.2006, 11:39
    #34037031
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
asa 902. Есть две строки в таблице, на pk первой (id=1) ссылается множество записей других
Дропнуть FK Constraints,
удалить первую запись,
проапдейтить значение PK второй записи,
создать FK Constraints, заново.
...
Рейтинг: 0 / 0
06.10.2006, 12:07
    #34037145
PavelPavel
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
asa 902. Есть две строки в таблице, на pk первой (id=1) ссылается множество записей других
Думал об этом...

Нормальная практика дропать FK Constraints? К чему может привести данное дропанье?
...
Рейтинг: 0 / 0
06.10.2006, 14:36
    #34037845
v_smirnov
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
asa 902. Есть две строки в таблице, на pk первой (id=1) ссылается множество записей других
Вариантов несколько. один тебе уже привели.

Насколькоя понял тебе надо удалить id=1, изменить id=2 на id=1 (все это в таблице table1

update table2 set id=2 where id=1;

delete from table1 where id=1;

insert into table 1 (все поля)
select 1, все_поля_кроме_id where id=2
(т.е. вставляем копию записи с другим идом)

update table2 set id=1 where id=2;

delete from table1 where id=2;

Или сделать FK - cascade update и ...

или ...
...
Рейтинг: 0 / 0
06.10.2006, 14:41
    #34037878
v_smirnov
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
asa 902. Есть две строки в таблице, на pk первой (id=1) ссылается множество записей других
или ...

update table1 t1
set
поле_таблицы_t1=t2.поле_таблицы_t2,
поле_таблицы_t1=t2.поле_таблицы_t2,
etc
from table1 t1 join table1 t2 on (t1.id=1 and t2.id=2);

delete from table2 where id=2;

P.S. Я правильно понял что у тебя ASA 902?
...
Рейтинг: 0 / 0
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / asa 902. Есть две строки в таблице, на pk первой (id=1) ссылается множество записей других / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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