データベース管理者

データベースのスキルを向上させ、コミュニティの他の人から学びたいデータベースの専門家向けのQ&A

7
Postgresqlクエリで連続した複数の範囲の開始と終了を効率的に選択する
この質問は、データベース管理者のStack Exchangeで回答できるため、Stack Overflowから移行されました。 7年前に移行され ました。 名前と整数が1〜288の範囲のテーブルには、約10億行のデータがあります。指定されたnameに対して、すべてのintは一意であり、範囲内のすべての可能な整数が存在するわけではないため、ギャップがあります。 このクエリは、サンプルケースを生成します。 --what I have: SELECT * FROM ( VALUES ('foo', 2), ('foo', 3), ('foo', 4), ('foo', 10), ('foo', 11), ('foo', 13), ('bar', 1), ('bar', 2), ('bar', 3) ) AS baz ("name", "int") 名前と連続した整数のシーケンスごとに行を持つルックアップテーブルを生成したいと思います。そのような各行には以下が含まれます。 名前 -値の名前の列 開始 連続シーケンス内の最初の整数- エンド -連続するシーケンスの最後の値 スパン - エンド-スタート+ 1 このクエリは、上記の例の出力例を生成します。 …
19 query  postgresql 

2
大文字と小文字を区別しない照合はどのように機能しますか?
SQL Serverの既定の照合タイプでは、大文字と小文字を区別しない文字列に対してインデックスを作成できますが、データの大文字と小文字は保持されます。これは実際にどのように機能しますか?実際のナットとボルト、ビットとバイト、または詳細を説明する優れたリソースを探しています。 create table casetest (fruitnames nvarchar(50) not null); create unique index IX_fruitnames on casetest(fruitnames); insert into casetest values ('apples'); insert into casetest values ('Pears'); -- this insert fails insert into casetest values ('pears'); -- this yields 'Pears' as a result select * from casetest (forceseek) where fruitnames = 'PEARS' …

2
テーブル行の「CO2」を「CO₂」に更新できません
この表が与えられた場合: CREATE TABLE test ( id INT NOT NULL, description NVARCHAR(100) COLLATE Modern_Spanish_CI_AS NOT NULL ); INSERT INTO test (id, description) VALUES (1, 'CO2'); 活版印刷の問題を解決できないことに気付きました。 SELECT * FROM test WHERE id = 1; UPDATE test SET description = 'CO₂' WHERE id = 1; SELECT * FROM test WHERE id = …



3
Postgresqlはレプリケーション接続を受け入れません
昔ながらのストリーミングレプリケーション。PostgreSQL:9.2.7 Windows 8.1 64ビット プライマリクラスタとセカンダリクラスタは同じ Windowsマシン上にあります。pg_start_backup()とすべてをすでに実行しているため、両方のノードにまったく同じデータがあります。 現在、レプリケーションの問題は、スレーブサーバーからプライマリサーバーに接続しない「レプリケーション接続」ですが、psqlシェルを使用して同じパラメーターを使用して接続できます。私が犯人だと思うのは、スレーブのrecovery.confの接続文字列です。 primary_conninfo = 'host = 127.0.0.1 port = 5432 user = postgres password = postgres' localhost、0.0.0.0、lan IPをすべて試しましたが、pgログには次のように書かれています: FATAL: could not connect to the primary server: FATAL: no pg_hba.conf entry for replication connection from host "127.0.0.1", user "postgres", SSL off マスターのpg_hba.confを見てください: host all all 0.0.0.0/0 …

4
2つの異なる場所にある2つのMySQLデータベースを同期する
内部サーバーとWebホスティングサーバーに2つの同一のMySQLデータベースがあります。内部サーバーのデータベースを使用して、毎日Webホストのデータベースを更新したい。このプロセスを自動化する方法はありますか、これを手動で行う方法はありますか?手動で行う場合、内部サーバー上のデータベースのSQLダンプを取得してから、Webホスト上のデータベースにインポートする必要がありますか?誰かアドバイスしてください。

17
2つのデータベースのスキーマを比較するにはどうすればよいですか?
2つのSQL Serverデータベースの違いを見つける方法はありますか(スキーマのみ)。1つはローカルで、もう1つは顧客のサイトにあります。一部のレポートを実行しているクリスタルレポートと実行されていないコードで問題が発生しており、スキーマが一致していないようです。 両方のデータベースで同じコマンドを実行し、結果を比較して違いがどこにあるかを確認できますか?

3
count()を使用してパーセンテージを決定するPostgreSQL(キャストの問題)
次のクエリを実行してpatients、refinst列の値を持つテーブル内の行の%を提供しようとしています。結果が0のままになります。 select (count (refinst) / (select count(*) from patients) * 100) as "Formula" from patients; テーブルには15556行あり、そのうち1446行が列にselect count(refinst) from patients値を持っていることがわかりrefinstます。クエリから取得したい応答は30.62(1446/15556*100=30.62XXXXX小数点以下2桁に丸められます)になります。 カウント結果のデータ型(私が想定している整数)と関係があると確信しています。整数を整数で除算し、結果が0未満の場合、0に切り捨てられますか?その場合、カウントの結果を小数点以下2桁の数値としてキャストして、結果も小数点以下2桁に丸める方法を教えてもらえますか? このコードを書くには、複数のcountステートメントよりも良い方法があると確信しています。特にこのクエリを書くための、よりプロセッサ効率の良い方法を探しています。
19 postgresql  count  cast 

2
1つの列に特定の値がある場合にのみ適用されるカスタムの一意の列制約
次のようにカスタムの一意の列制約を持つことは可能ですか?2つのcol subsetとtype、両方の文字列があると仮定します(データ型はおそらく重要ではありませんが)。 Ifはtype「真」である、私はの組み合わせをしたいtypeとsubset一意です。それ以外の場合、制約はありません。DebianでPostgreSQL 8.4を使用しています。

2
SSDTでシステムビューを参照していますか?
システムビュー(具体的にはsys.columns)への参照を含むデータベースをSSDTにインポートしました。問題は、プロジェクトをビルドするときに未解決の参照に関する警告が表示されることです MSDNフォーラムで見たところ、既知の問題のようです:http : //social.msdn.microsoft.com/Forums/en-US/ssdsgetstarted/thread/5a7026bd-0602-42e6-a639- d73bed903c26 今、私は警告をオフにしたり無視したりできることを知っていますが、実際の解決策を知っている人はいますか? ありがとう

1
エラー:データベース「dbname」は存在しません
ドキュメントによると、データベースに接続していない限り、以下を使用してコンソールでデータベースを削除できます。 DROP DATABASE dbname; または、ラッパーツールを使用してドロップできますdropdb。 どちらもデータベースが存在しないというエラーを表示しますが、コンソールでコマンドを入力すると、\l削除したいものを含むデータベースのリストが表示されます。 List of databases Name | Owner | Encoding | Collate | Ctype | Access privileges ---------------------------+-----------+----------+-------------+-------------+----------------------- Blog_development | myusername | UTF8 | en_US.UTF-8 | en_US.UTF-8 | Blog_test | myusername | UTF8 | en_US.UTF-8 | en_US.UTF-8 | データベース名はBlog_development(およびその下の名前)です。私はレールで遊んでいて、オンラインドキュメントから学ぼうとしていました。最初からやり直して、すべてを削除したかった。 ただし、削除しようとすると、存在しないと表示されます。私はPostgreSQLを初めて使用するため、少し迷子になりました。このエラーに関するドキュメントには、存在しない場合にポップアップするもの以外は何もありません。もちろん存在しますが、まさにそこにあります。
19 postgresql 

2
plpgsqlで記述された関数呼び出しのPostgresクエリプラン
使用するとき、それは可能ですpgadminかplsql内部で実行されるSQL文のクエリプランのホールドを取得するために、U SER D efined F慰め(UDF)を使用しますEXPLAIN。それでは、UDFの特定の呼び出しに対するクエリプランを取得するにはどうすればよいですか?F()pgadminでUDFが抽象化されて単一の操作になっています。 ドキュメントを見てきましたが、何も見つかりませんでした。 現在、ステートメントを引き出して手動で実行しています。しかし、これは大規模なクエリに対しては削減されません。 たとえば、以下のUDFを検討してください。このUDFは、クエリ文字列を出力できますが、ローカルに作成された一時テーブルがあり、貼り付けて実行すると存在しないため、コピーと貼り付けでは機能しません。 CREATE OR REPLACE FUNCTION get_paginated_search_results( forum_id_ INTEGER, query_ CHARACTER VARYING, from_date_ TIMESTAMP WITHOUT TIME ZONE DEFAULT NULL, to_date_ TIMESTAMP WITHOUT TIME ZONE DEFAULT NULL, in_categories_ INTEGER[] DEFAULT '{}') RETURNS SETOF post_result_entry AS $$ DECLARE join_string CHARACTER VARYING := ' '; from_where_date CHARACTER …



弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.