問題タブ [sequence-sql]
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.
java - Oracle シーケンスのトランザクション性
特定のビジネス シナリオで、エンティティ (PK ではない) にフィールドを設定する必要があります。
私は次のようにシーケンスを定義しました:
Javaコードでは、次のようにシーケンスから番号を取得します:
私の質問は:
トランザクションでこれを呼び出しselect mySequence.nextval from dual
、同時に別のトランザクションで同じメソッドが呼び出された場合 (並列要求)、シーケンスによって返される値が異なることは確かですか?
最初のトランザクションからコミットされていない値を読み取ることはできませんか?
シーケンスを使用せず、シーケンスをインクリメントする単純なテーブルを使用しなかったとします。trasactinalitY がデフォルトの「READ COMMITTED」である場合、トランザクション 2 は同じ値を読み取ることができたはずです。
delphi - Delphi XE2でジェネレーターを使用してマスター詳細関係に外部キーを割り当てる方法は?
例として:
私はfirebirdに2つのテーブルを持っています:
TB_CUSTOMER
- IDCUSTOMER (自動インクリメントジェネレーター)
- 顧客名
TB_PHONE
- IDフォン
- IDCUSTOMER (TB_CUSTOMER からキーを転送)
- 電話
Delphi で開発された登録フォームがあります。テーブル データ TB_PHONE は、dbgrid を使用して処理されます。Firebird ジェネレーターによって生成されたものではないため、TB_PHONE のフィールド IDCUSTOMER の値を割り当てることができません。テーブル間の関係をどのように作成できますか? 最初にテーブル データ TB_CUSTOMER を保存せずに実装したいと考えています。IBDAC でデータモジュールを使用しています。
何か提案はありますか?
c# - Entity Framework Code First と SQL Server 2012 シーケンス
私は、データベース監査証跡を実装している最中でした。これにより、Web API プロジェクトでコントローラーを介して実行される CRUD 操作によって、古い Poco と新しい Poco がシリアル化され、後で取得できるように値が保存されます (履歴、ロールバックなど)。
すべてが機能するようになったとき、POST 中にコントローラーがどのように見えるかが気に入らなかったSaveChanges()
のは、挿入されたエンティティの ID を取得するために 1 回と、知る必要がある監査レコードをコミットするために 2 回呼び出す必要があったためです。そのID。
ID 列の代わりにシーケンスを使用するようにプロジェクト (まだ初期段階) を変換することに着手しました。これには、SQL Server からさらに抽象化するという追加のボーナスがありますが、それは実際には問題ではありませんが、コミットの数を減らすこともでき、そのロジックをコントローラーから引き出して、サービス レイヤーに詰め込むこともできます。リポジトリからコントローラーを抽象化し、この「シム」レイヤーでこの監査のような作業を行うことができます。
オブジェクトを作成し、それを公開するストアド プロシージャを作成したらSequence
、次のクラスを作成しました。
これは、ID を取得する 2 つの方法、単一の方法と範囲を提供するだけです。
これは最初の一連の単体テストではうまく機能しましたが、実際のシナリオでテストを開始するとすぐに、 を 1 回呼び出すだけで、が呼び出されるGetNextId()
まで、そのコンテキストの存続期間にわたって同じ値が返されることにすぐに気付きました。SaveChanges()
本当の利益を否定します。
2番目のコンテキストを作成する(オプションではない)か、古い学校のADO.NETに行き、直接SQL呼び出しを行い、AutoMapperを使用して同じ最終結果を得るという短い方法があるかどうかはわかりません。どちらも私には魅力的ではないので、他の誰かがアイデアを持っていることを願っています.
oracle - slickを介してOracleでauto inc列を処理する
私は滑らかな 2.1.0 を使用しています。Oracleには列の自動インクリメント属性の概念がないため、シーケンスを使用して滑らかに挿入を管理するにはどうすればよいですか。たとえば、次のようなテーブルとシーケンスがあります。
このシーケンスを使用して USER_ID を設定するにはどうすればよいですか?
また、Slicks の SourceCodeGenerator で autoIncLastAsOption = true を設定しても効果がないようです。私の ID はまだ Option[] ではありません。
sql - シーケンスはすでに作成されていますが、RA-02289 を示すエラー: シーケンスが存在しません
ORACLE 10g データベースでシーケンスを作成しました
このシーケンスを使用するデータベースにもテーブルがあります
しかし、使用してテーブルに値を挿入するとき
次のエラーが発生します
ORA-02289: 順序が存在しません
テーブルにデータを挿入するシーケンスを使用するにはどうすればよいですか。シーケンス挿入コマンドを使用していない場合は、完全に機能します。
sequence-sql - シーケンス値は Oracle のどこに格納されますか?
オラクルでシーケンスを処理しているときに、これらのシーケンス値がどこに格納されているのか混乱することがあります。これが答えです。
postgresql - Postgresql では、シーケンス番号は 1 から始まるように設定されていますが、実際には ID が 2 の新しいレコードが返されますか?
を使用setval('sequence',1)
すると、シーケンスの開始値が 1 に設定されます。ただし、レコードが挿入されると、最初の「シーケンス」番号は実際には 2 になります。
実際の最初のレコードのシーケンス番号を 1 にする方法を教えてください。
database - Oracle の ID 列が none に変更される
私はしばらくの間、この問題に取り組んできました。ID として機能する列を持つテーブルがあります。それぞれを識別するための一連の番号が必要です。したがって、Oracle 11g で ID 列機能を使用していますが、正常に動作しますが、しばらくして新しい行を挿入すると、「ora-01400 は null を挿入できません...」というエラーが表示されるので、 ID列がまだそのように「構成」されているかどうかを確認しますが、そうではありません。わからない、多分私はステップをスキップしていますか?
作成されるシーケンスのコードは次のとおりです。
そして、これはトリガーのコードです:
誰が何が間違っているのか知っていますか? 私はあなたの助けに感謝します!すてきな一日を。