問題タブ [cross-database]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
3248 参照

sql - 別のデータベースの SQL 外部キー

私は現在、基本的に別のデータベースの子であるデータベースを職場で作成しています。私たちのクライアントが私たちのソフトウェアを入手するとき、彼らはデータベースを手に入れます。それを MasterBase と呼びましょう。このデータベースには、2 つの異なる小さなデータベースをまとめたスキーマが含まれています。それらを MasterC と MasterF と呼びましょう。

私の仕事は、MasterF に関連するすべてのスキーマを取得し、それらを独自のデータベースに配置することです。問題は、MasterC のテーブルとビューへの参照がたくさんあることです。これを回避するには、MasterF と MasterC をペアにするプロパティを追加して、.NET ソリューションで次のようなことができるようにします。

Table tableName.... (MasterF で作成中のテーブル) References .... MasterC.dbo.tableC (MasterC のテーブル)

ただし、SQL では、次のエラーが発生します: MSG 1763 データベース間の外部キー参照はサポートされていません。

最も一般的な回避策はトリガーを追加することですが、これがそれほど安全ではなく、ストアドプロシージャなどの別の方法があるかどうか疑問に思っていた多くのインスタンスがあることを確認しました.

トリガーが本当に最善/唯一の方法であり、この問題があるすべてのテーブルにトリガーを追加する必要がある場合、このトリガーをどのように作成すればよいでしょうか。SQL は少し知っていますが、ほとんど熟達していません。

助けてください!

0 投票する
1 に答える
498 参照

sql - PostgreSQLはデータベース間でテーブルを置き換えます

Web サイトには、一時データベースで動作するスクリプトがいくつかあります。スクリプトを開始する前に、本番データベースから一時データベースを削除して再作成します。プロセスの最後に、一時データベースからのこれらのスクリプトの結果で本番データベースを更新したいと思いますが、スクリプトの実行中に発生した変更を保持します (数時間)。

置換先がpostgreSQLに実装されていないことは知っていますが、私にとってはうまくいくこの解決策を見つけました: How to UPSERT (MERGE, INSERT ... ON DUPLICATE UPDATE) in PostgreSQL?

私の問題は、このソリューションでは2つのデータベースをリンクする必要があることです。これもpostgreSQLに実装されていないことがわかったので、一時データベースからライブデータベースにテーブルをコピーする必要がありますが、その間、テーブルの名前を変更して、値の重複を防止したり、不要な変更を防止したりします。約 30 のテーブルがありますが、スクリプトによって変更されるのは約半分だけなので、作業するテーブルを制限できれば素晴らしいと思います。一時データベースからファイルに pg_dump し、それらを本番テーブルに挿入する唯一の方法を見つけた限り、それはあまりにもエレガントなソリューションではなく、おそらく遅すぎるでしょう.

この問題を効果的な方法で解決するにはどうすればよいですか?

Linux (Ubuntu) で postgreSQL 8.3 を使用しており、ルート アクセス権があります。

0 投票する
1 に答える
41 参照

php - 別のテーブルphpで正しい情報を取得する

彼ら!

私はこのデータベースを持っています *table: post

post_id は、投稿者 (投稿者) の ID です。

そして、私はこのデータベースを持っています *table: author

私のページは次のようなものです:

上記のこのコードを使用すると、「投稿」データベースにあるすべての投稿を取得できます。これはうまく機能しています。しかし、投稿者からアバターを取得できません。どうすればこれを行うことができますか?

チェックリスト:

•( if ) 関数を試しましたが、うまくいきません。•id_post でセッションを作成しようとしましたが、データベース内の最後のアバターまたは最初のアバターしか表示されません。

次のようなものが必要です:

if (post) post_id = (author) post_id は、著者に関する正しい情報を表示します。

0 投票する
1 に答える
709 参照

postgresql - PostgreSQL: あるデータベースから別のデータベースに多くのテーブルを定期的にコピーする方法

同じ PostgreSQL 9.3 サーバー (Windows 上で実行) で 2 つのデータベースを実行しています。2 つのデータベースの構造はまったく同じです。同じテーブル、同じキー、同じ制約などです。唯一の違いは、データが定期的に一方から他方に移動されることです。顧客と注文に関する情報を含むデータベースのようなものだと考えてください。たとえば、2 年以上前の顧客に関連するデータが毎週移動されます。

新しいデータベースと古いデータベースのデータを組み合わせたテーブルを簡単に作成する方法はありますか? 何かのようなもの:

データベースの 170 のテーブルのうち約 25 で実行されます。

私が見る2つの重要な問題は次のとおりです。

1) PostgreSQL は実際にはクロス データベース クエリを許可していません。外部データ ラッパーまたは db リンク (ここで述べたように: Postgres でクロスデータベース クエリを実行できますか? ) は、アクセスするテーブルの構造全体を事前に宣言する必要があるため、使用するのが非常に面倒です。

2) これを自動化する方法を見つけて、必要な 25 個のテーブルごとに自動的にコーディングできるようにする必要があります。これは毎週実行されます。

効率的に自動化できる限り、これがどのように行われるか (Pentaho-Kettle、コマンド スクリプト、SQL スクリプトなど) には何の好みもありません。

ありがとう!

0 投票する
1 に答える
125 参照

sql-server - クロス データベース セキュリティ

XとYの2つのデータベースがあります。Xのビューを介してYのテーブルにアクセスする必要があるXのユーザーがいます.Xには、Yのテーブルにアクセスするために構築されたシノニムがあります.シノニムにアクセスするのではなく、ビューにアクセスする必要があります(私はDENY GRANTを通じてこれを達成しました) )、Yデータベースのテーブルに直接アクセスしないでください(GRANT権限は役に立ちません)。両方のデータベースはSQL Server-2012の同じインスタンスにあります。同じインスタンス上のリンク サーバーを回避する方法はありますか。

ユーザー -> データベース X -> ビュー -> シノニム -> データベース Y -> データを表示する必要があります ユーザー -> データベース Y -> テーブル -> データを表示しない

0 投票する
1 に答える
417 参照

visual-studio-2012 - SSDT プロジェクトはクロス データベース トリガーを参照できません - 警告 SQL71502

私は2つのSQL 2012 DBを持っています - 1つはトリガーを持つテーブルを持ち、もう1つはそのトリガーを無効にする手順を持っています。

各データベースに 1 つずつ、2 つのデータベース プロジェクトを使用して SSDT ソリューションを作成しました。2 番目のデータベースでは、最初のデータベースを指すデータベース参照を追加して、オブジェクトを参照できるようにしましたが、手順の行は次のとおりです。

警告が表示されます:

SQL71502 プロシージャー: [dbo].[CrossDbTriggerCall] には、オブジェクト [dbo].[MyTrigger] への未解決の参照があります。

Visual Studio 2012 SSDT および Visual Studio 2013 Ultimate でこの動作を一貫して再現できます。