• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:複数のテーブルのレコードを DELETEする方法 ( 外部参照 テーブル ))

複数のテーブルのレコードをDELETEする方法

このQ&Aのポイント
  • 複数のテーブルからレコードを削除する方法について説明します。
  • MySQLではテーブルの結合を利用してDELETE文で複数のテーブルのレコードを削除できますが、PostgreSQLではどうでしょうか?
  • また、テーブル作成時に制約を設定する方法についても解説します。

質問者が選んだベストアンサー

  • ベストアンサー
  • root139
  • ベストアンサー率60% (488/809)
回答No.2

すでに回答が付いていますが、 PostgreSQLでは、テーブルを結合して削除することは出来なかったと思います。 対策としては、下記の方法が考えられるかと。 1. 削除時には、先に user_rel_group テーブルの該当レコードを消してから member テーブルのレコードを消す様にする。 例) --------------------------------------------------- DELETE user_rel_group WHERE userid = 10030118; DELETE member WHERE userid = 10030118; ------------------------------------------------------- 2. ALTER TABLE 文で参照整合性制約を付け直す。 ------------------------------------------------------- ALTER TABLE user_rel_group DROP CONSTRAINT user_rel_group_userid_fkey; ALTER TABLE user_rel_group ADD CONSTRAINT user_rel_group_userid_fkey FOREIGN KEY (userid) REFERENCES user (userid) ON DELETE CASCADE; -------------------------------------------------------

参考URL:
http://www.postgresql.jp/document/pg815doc/html/sql-altertable.html
brosis
質問者

お礼

回答有難うございます。 「ALTER TABLE 文で参照整合性制約を付け直す。」の例、参考になりました。 テーブルのつくり直ししてしまいました。。

その他の回答 (1)

  • nora1962
  • ベストアンサー率60% (431/717)
回答No.1

> のようにテーブルを結合して、複数のテーブルのレコードを削除できるようですが、 > PostgreSQLは、出来ますでしょうか? 確かできなかったと思います。 http://www.postgresql.jp/document/current/html/sql-delete.html

brosis
質問者

お礼

返信送れて、申し訳ありません。 やっぱり出来ないみたいですか。

関連するQ&A