|
|
|
Удаление записей из двух таблиц, связанных по ключу
|
|||
|---|---|---|---|
|
#18+
Здравствуйте! не подскажите, как написать sql-запрос для удаления записей из двух таблиц A и B, при этом: в таблице A присутствует FK из таблицы B (то есть, сначала нужно удалить записи из таблицы А, потом - из B) чтобы удалить записи из таблицы B, нужно знать значения из таблицы A (то есть delete from B where B.id in (select b_id from A)). То есть невозможно удалить записи из B, предварительно удалив записи из А - противоречие с предыдущим пунктом. В принципе, в MsSQL можно было бы сделать так: DELETE FROM B LEFT JOIN A ON B.id = A.b_id; но в postgresql, как я понял из документации , это не получиться. Не подскажите, как быть? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2016, 11:55 |
|
||
|
Удаление записей из двух таблиц, связанных по ключу
|
|||
|---|---|---|---|
|
#18+
Adis, вот проблему-то возвел. удалил из одной таблицы, потом из другой, разом из обеих, или транкейт. какая тебе разница, кто там in, а кто join, если они уже связаны fk. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2016, 12:15 |
|
||
|
Удаление записей из двух таблиц, связанных по ключу
|
|||
|---|---|---|---|
|
#18+
p2., то есть, Вы хотите сказать, что нужно делать так: Код: plsql 1. 2. Код: plsql 1. 2. ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2016, 12:28 |
|
||
|
Удаление записей из двух таблиц, связанных по ключу
|
|||
|---|---|---|---|
|
#18+
Adis, если FK on delete restrict, то да, наверное сперва на б, потом на а. а если on delete cascade, то дилитим на а а в б записи будут дилитится автомагически. так какой кострейнт? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2016, 12:29 |
|
||
|
Удаление записей из двух таблиц, связанных по ключу
|
|||
|---|---|---|---|
|
#18+
Вы знаете, там как-то (заранее извиняюсь - я SQL начал осваивать только вчера): Код: sql 1. 2. 3. 4. Код: plsql 1. 2. 3. 4. Код: sql 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2016, 12:35 |
|
||
|
Удаление записей из двух таблиц, связанных по ключу
|
|||
|---|---|---|---|
|
#18+
Я написал скрипт - сначала удаляю из B, потом из А: Код: plsql 1. 2. 3. 4. 5. 6. но здесь мне сругнулась: Код: xml 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2016, 12:51 |
|
||
|
Удаление записей из двух таблиц, связанных по ключу
|
|||
|---|---|---|---|
|
#18+
можете сюда подумать: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. хотя , в действительности все не так, как на самом деле: -- там, в определении констрайнта, бывают ещё словечки про DEFERRABLE ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2016, 13:04 |
|
||
|
Удаление записей из двух таблиц, связанных по ключу
|
|||
|---|---|---|---|
|
#18+
виноват, там как-то так: Код: plsql 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2016, 13:06 |
|
||
|
|

start [/forum/topic.php?fid=53&msg=39183582&tid=1997390]: |
0ms |
get settings: |
6ms |
get forum list: |
20ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
156ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
64ms |
get tp. blocked users: |
2ms |
| others: | 218ms |
| total: | 486ms |

| 0 / 0 |
