[解決済み] Postgresでpublicから他のスキーマにテーブルを移動する方法
2023-04-05 17:17:59
質問
Postgres 9.1データベースはpublicスキーマにyksus1 ... ykssu9テーブルを含んでいます。pgAdminは以下のコードのようにそれらの定義を表示しています。 これらのテーブルをfirma1スキーマに移動するにはどうしたらよいでしょうか?
firma1スキーマの他のテーブルは、これらのテーブルの主キーに対する外部キー参照を持っています。これらのテーブルへの外部キー参照は、Firma1スキーマのテーブルからのみです。
これらのテーブルの中には、データを含んでいるものがあります。 テーブルをfirma1スキーマに移動した場合、外部キー参照もfirma1.yksusnのテーブルに更新される必要があります。 テーブルの構造を変更することはできません。
主キー配列はすでにfirma1スキーマにあるようなので、それらは移動されないはずです。 バージョン文字列 PostgreSQL 9.1.2 x86_64-unknown-linux-gnu, コンパイル: gcc-4.4.real (Debian 4.4.5-8) 4.4.5, 64-bit
CREATE TABLE yksus1
(
yksus character(10) NOT NULL DEFAULT ((nextval('firma1.yksus1_yksus_seq'::regclass))::text || '_'::text),
veebis ebool,
nimetus character(70),
"timestamp" character(14) DEFAULT to_char(now(), 'YYYYMMDDHH24MISS'::text),
username character(10) DEFAULT "current_user"(),
klient character(40),
superinden character(20),
telefon character(10),
aadress character(50),
tlnr character(15),
rus character(60),
CONSTRAINT yksus1_pkey PRIMARY KEY (yksus)
);
ALTER TABLE yksus1
OWNER TO mydb_owner;
CREATE TRIGGER yksus1_trig
BEFORE INSERT OR UPDATE OR DELETE
ON yksus1
FOR EACH STATEMENT
EXECUTE PROCEDURE setlastchange();
他のテーブルも同様です。
CREATE TABLE yksus2
(
yksus character(10) NOT NULL DEFAULT ((nextval('firma1.yksus2_yksus_seq'::regclass))::text || '_'::text),
nimetus character(70),
"timestamp" character(14) DEFAULT to_char(now(), 'YYYYMMDDHH24MISS'::text),
osakond character(10),
username character(10) DEFAULT "current_user"(),
klient character(40),
superinden character(20),
telefon character(10),
aadress character(50),
tlnr character(15),
rus character(60),
CONSTRAINT yksus2_pkey PRIMARY KEY (yksus),
CONSTRAINT yksus2_osakond_fkey FOREIGN KEY (osakond)
REFERENCES yksus2 (yksus) MATCH SIMPLE
ON UPDATE CASCADE ON DELETE NO ACTION DEFERRABLE INITIALLY IMMEDIATE
);
ALTER TABLE yksus2
OWNER TO mydb_owner;
CREATE TRIGGER yksus2_trig
BEFORE INSERT OR UPDATE OR DELETE
ON yksus2
FOR EACH STATEMENT
EXECUTE PROCEDURE setlastchange();
どのように解決するのですか?
ALTER TABLE yksus1
SET SCHEMA firma1;
詳しくはマニュアルをご覧ください。 http://www.postgresql.org/docs/current/static/sql-altertable.html
<ブロッククオートテーブルのカラムが所有する関連インデックス、制約、シーケンスも同様に移動されます。
トリガ関数についてはよく分かりませんが、同等な
ALTER FUNCTION .. SET SCHEMA ...
もあります。
関連
-
[解決済み] SQL ServerでSELECTからUPDATEする方法とは?
-
[解決済み] SQL Server で複数行のテキストを 1 つのテキスト文字列に連結する方法
-
[解決済み] SQL Server の DateTime データ型から日付だけを返す方法
-
[解決済み] PostgreSQL コマンドラインユーティリティ: psql を終了する方法
-
[解決済み] ATTACHで開いたSQLiteデータベースファイルのテーブルを一覧表示するにはどうすればよいですか?
-
[解決済み] SQL Serverでレコードを削除した後、IDシードをリセットする。
-
[解決済み] postgres: ユーザーをスーパーユーザーにアップグレードしますか?
-
[解決済み] VARCHARとCHARの違いは何ですか?
-
[解決済み】PostgreSQLスキーマのテーブルを一覧表示する。
-
[解決済み] ALTER TABLE文に'ON DELETE CASCADE'を追加する方法
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
SQLラーニングノート--オペランドには1つのカラムが必要です。
-
解決策:ユーザー root で localhost:3306 にある MySQL に接続できませんでした。
-
[解決済み] ...値に挿入する ( SELECT ... FROM ... )
-
[解決済み] 複数の列でgroup byを使用する
-
[解決済み] INNER JOINよりもCROSS APPLYを使用すべきなのはどのような場合ですか?
-
[解決済み] SQL Serverでテーブルからカラム名を取得するにはどうすればよいですか?
-
[解決済み] SQL ServerでINSERT INTOとしてデータをエクスポートする
-
[解決済み] SQL ServerでGROUP BYを使って文字列を連結する方法とは?
-
[解決済み] SQL/mysql - Select distinct/UNIQUE but return all column?
-
[解決済み] SQL Serverで、ある日付より大きいすべての日付を照会するにはどうすればよいですか?