|
|
|
UPDATE T1 по Т2
|
|||
|---|---|---|---|
|
#18+
Подскажите, плз. Есть две табл. Т1 и Т2 с одинаковыми индексными полями Т1.К1 и Т2.К1. Другие поля могут отличаться. И количество полей разное. Необходимо сделать UPDATE T1 по Т2, т.е. изменить необходимые поля, которые изменились в Т2 и Добавить новые записи из Т2 в Т1. С добавлением вроде понятно - INSERT INTO.... SELECT ... FROM ... WHERE... А как сделать обновление (можно ли обойтись без SCAN)? Или можно ли выполнить задачу одним оператором SQL? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.09.2005, 17:16:01 |
|
||
|
UPDATE T1 по Т2
|
|||
|---|---|---|---|
|
#18+
Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.09.2005, 17:24:20 |
|
||
|
UPDATE T1 по Т2
|
|||
|---|---|---|---|
|
#18+
Хитро. Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.09.2005, 17:44:16 |
|
||
|
UPDATE T1 по Т2
|
|||
|---|---|---|---|
|
#18+
Суть была понятна. Но 1. Ругается на скобки-??? (VFP8) 2. И что мне возвращает сам SELECT- (тысячи записей) ??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.09.2005, 18:49:32 |
|
||
|
UPDATE T1 по Т2
|
|||
|---|---|---|---|
|
#18+
боюсь что в VFP8 такое не пройдет в VFP9 - да ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.09.2005, 20:44:01 |
|
||
|
UPDATE T1 по Т2
|
|||
|---|---|---|---|
|
#18+
Если связь вида один-к-одному или много-к-одному, то в младших версиях FoxPro это делается так: Код: plaintext 1. 2. 3. 4. 5. 6. Здесь я предполагаю, что таблица t2 уже открыта и у нее существует индексный тэг по полю K2, который так и называется K2. Делать этот индекс главным - не обязательно. Только следует иметь в виду, что такая команда REPLACE на время своего выполнения заблокирует всю таблицу t1. Вне зависимости от того, сколько фактически записей будет изменено. Поэтому, обычно такие команды предваряют ручной блокировкой всей таблицы Код: plaintext 1. 2. 3. 4. 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.09.2005, 21:28:06 |
|
||
|
UPDATE T1 по Т2
|
|||
|---|---|---|---|
|
#18+
Hi MikeLed! Забей - в VFP8 делай SCAN или Relation + REPLACE ALL (или в FOR часть REPLACE поставь хитрый SEEK() для второй таблицы - чтоб "связь" организовалась). В VFP9 можно и подзапросом, и "коррелированным UPDATE" - это типа (из хелпа) Код: plaintext Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.09.2005, 01:41:20 |
|
||
|
|

start [/forum/topic.php?fid=41&fpage=301&tid=1593418]: |
0ms |
get settings: |
7ms |
get forum list: |
13ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
84ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
45ms |
get tp. blocked users: |
1ms |
| others: | 227ms |
| total: | 393ms |

| 0 / 0 |
