問題タブ [rowid]
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.
sql - 特定の行のrownumを返すSQL? (Oracle データベースを使用)
Oracle 10g には、次の SQL があります。
戻り値:
このクエリを拡張して、この結果セット内の dog.id の oracle rownum を特定したいと考えています。
私が試してみました
しかし、これはうまくいきません (一致する dog.id に関係なく 1 を返します)。3に戻ると思っていました。
ご協力いただきありがとうございます!
ノート
http://www.oracle.com/technology/oramag/oracle/06-sep/o56asktom.html
私はROWIDを使用する必要はないと確信しています
database - ROWID は再利用されますか?
Informix、DB2、Oracle などのデータベースでは、ROWID は再利用されますか?
sql - Oracleの「rowid」疑似列の概念を持つオープンソースのSQLデータベースはありますか?
MySQLとPostgreSQL[1]にはその概念がないことを知っているので、その概念を持っているオープンソースのSQLデータベースがあることを知りたいと思います。
[1]PostgreSQLにはrowid疑似列があることが後で指摘されました。
sql - SQL Server の Oracle の RowID に相当
SQL Server の Oracle の RowID に相当するものは何ですか?
mysql - 最終更新行 ID を取得する方法はありますか
テーブルを更新した最後の行を取得する方法はありますか。
例:- 私のテーブルには 1000 レコードが含まれています。テーブル X の 500 番目のレコードの値を更新したので、代わりに ID 500 が必要です。
前もって感謝します。
よろしく、
sql - Oracleに挿入された直後にROWIDを無効にすることはできますか?
次のようなクエリを実行しています。
基本的に、行を挿入してその ROWID を取得し、その ROWID に対して選択を行って、そのレコードからデータを取得します。ただし、ごくまれに、ROWID が見つからないことがあります。
私がやろうとしていることを行うためのより良い方法がおそらくあるという事実を無視して、データベースを使用している人が他にいないと仮定して、ROWID がすぐに変更される可能性はありますか?
UPDATE 関連するトリガーがあります。そのための DDL ステートメントは次のとおりです。
基本的に、これは IDENTITY/AUTO INCREMENT フィールドをエミュレートするのに役立つように設定された単なるトリガーです。このトリガーに何か問題がありますか?
sql-server - 一意のRIDが「オーバーフロー」することはありますか?
私はSQLServerとPostgreSQLの両方で実行するアプリケーションを作成しているので、両方についてこの質問をしています。
(シーケンスまたは自動インクリメントタイプのものを使用して)一意の主キーを作成し、40億レコード(32ビット)を超えるとどうなりますか?テーブルに40億のレコードがあると言っているのではなく、RIDが増加するだけなので、40億のレコードが作成されていると言っています。したがって、これらのレコードを39億個削除しても、RIDは40億の範囲にあります。では、どうなりますか?精度を64ビットに上げますか、それとも0にロールオーバーしますか、それとも非常に重大なエラーを吐き出しますか?64ビットのRIDでも最終的にオーバーフローする可能性があることを心配する必要がありますか?
また、どうすればこれと戦うことができますか?何らかのクリーンアップオプションやツールはありますか?一貫したRIDを取得するには、毎年独自のものを作成する必要がありますか、それともテーブルを完全に再構築する必要がありますか?(したがって、これらのRIDを使用する他の多くのテーブルも外部キーです)
sqlite - SQLite3と暗黙のROWID
SQLite3は、主キーを指定しない場合、テーブルごとにrowidと呼ばれるデフォルトの主キーを提供します。ただし、これに依存することにはいくつかの欠点があるようです。
VACUUMコマンドは、明示的なINTEGERPRIMARYKEYを持たないテーブルのエントリのROWIDを変更する場合があります。
http://www.sqlite.org/lang_vacuum.html
暗黙のROWIDではなく明示的な主キーを使用するように既存のSQLite3データベースを変更したいので、必要に応じてバキュームを実行できます。データベース全体を再構築せずにこれを行うことはできますか?