powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / каскадное удаление не работает
7 сообщений из 7, страница 1 из 1
каскадное удаление не работает
    #34093825
autocommit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
почему может не срабатывать каскадное удаление ? есть таблица с столбцами к которым привязаны вторичные ключи ON DELETE CASCADE. При удалении записи в связанных таблицах записи не удаляются и нет никакой ошибки. id-шники соответствуют.
...
Рейтинг: 0 / 0
каскадное удаление не работает
    #34094062
Фотография Niemi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
можно ли увидеть саму табличку CREATE TABE bla bla
ключики соответственно и как удаляете. какая ошибка выскакивает , если она имется.
...
Рейтинг: 0 / 0
каскадное удаление не работает
    #34094239
autocommit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
вот табличка
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
CREATE TABLE "nextUrl"
(
  id int4 NOT NULL DEFAULT nextval('"nextUrl_id_seq"'::regclass),
  url varchar( 256 ),
  idurlstyle int4,
  free bool NOT NULL DEFAULT true,
  idurldataxml int4,
  CONSTRAINT xmldata_pkey PRIMARY KEY (id),
  CONSTRAINT "nextUrl_idurldataxml_fkey" FOREIGN KEY (idurldataxml)
      REFERENCES "nextUrlDataXML" (id) MATCH SIMPLE
      ON UPDATE NO ACTION ON DELETE CASCADE,
  CONSTRAINT "nextUrl_idurlstyle_fkey" FOREIGN KEY (idurlstyle)
      REFERENCES "nextUrlStyle" (id) MATCH SIMPLE
      ON UPDATE NO ACTION ON DELETE CASCADE
) 
WITHOUT OIDS;
...
Рейтинг: 0 / 0
каскадное удаление не работает
    #34094273
autocommit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
удаляю так:
Код: plaintext
delete from "nextUrl" where "nextUrl".id = <значение id>;

ошибок не выскакивает
...
Рейтинг: 0 / 0
каскадное удаление не работает
    #34094897
autocommit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
поставил постгрю 8.0.8 (до этого пробовал на 8.1.4) сделал совсем простые таблички:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
CREATE TABLE test
(
  id serial NOT NULL,
  idtest2 int4,
  CONSTRAINT test_pkey PRIMARY KEY (id),
  CONSTRAINT test_idtest2_fkey FOREIGN KEY (idtest2)
      REFERENCES test2 (id) MATCH SIMPLE
      ON UPDATE NO ACTION ON DELETE CASCADE
) 
WITHOUT OIDS;
ALTER TABLE test OWNER TO postgres;
-- ***********************************
CREATE TABLE test2
(
  id serial NOT NULL,
  name char( 80 ),
  CONSTRAINT test2_pkey PRIMARY KEY (id)
) 
WITHOUT OIDS;
ALTER TABLE test2 OWNER TO postgres;

--- запросы
insert into test2 (name) values ('имя'); 
insert into test (idtest2) values ( 1 );
delete from test where id =  1 ;
select * from test2;
id |            name                                
----+------------------------
   1  | имя                                                                       
( 1  row)
что делаю не так ?
...
Рейтинг: 0 / 0
каскадное удаление не работает
    #34094977
.gc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
.gc
Гость
не оттуда удаляешь по недоразумению :)
Код: plaintext
CONSTRAINT test_idtest2_fkey FOREIGN KEY (idtest2)    REFERENCES test2 (id)  ON DELETE CASCADE
означает указание при удалении записей из таблицы test2 также удалить записи из таблицы test , которые ссылаются на них (test.idtest2=test2.id)
т.е.
Код: plaintext
delete from test2; select * from test;
...
Рейтинг: 0 / 0
каскадное удаление не работает
    #34095021
autocommit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
огромное спасибо !
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / каскадное удаление не работает
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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