2012-03-29 15 views
2

私はデータベース内の注文記録のIDに基づいて確認番号を生成するレガシーシステムを開発中です。自動インクリメントを使用して自動的に作成される行IDの前に付加されるゼロの束です。現在、システムは注文をデータベースに挿入し、直ちに確認番号(プログラムで挿入IDを取得した後)を追加するための更新を行っています。インサート時に一意のIDを取得して使用する

ご注文の際に確認番号を追加することで可能な限り、この第2段階を減らしたいと思います。しかし、私はこれをどのように行うことができないのか、それともSQLで行うことができないのか分かりません。これは可能ですか?もしそうなら、どうですか?私はこれをGoogleで検索しましたが、クエリが既に実行された後に最後の挿入IDを取得する方法を教えてくれます。

+0

AIパッドが詰まったバージョンのAI IDの場合は、冗長データであるためテーブルに格納しないでください。 – nnichols

+0

私は同意します。しかし、合理的なチャンスが変わる(もし私が自分の道を持っていれば)今のように私はそれをそのままそのまま残すだろう。 –

答えて

3

注文が挿入された場所で実行されるtriggerを書くことができます。

サンプル:

CREATE TRIGGER order_zeros BEFORE INSERT ON orders 
for each row 
begin 
    SET NEW.confirmation = LPAD(NEW.id, 8, '0'); 
end; 

免責事項:このコードは、唯一の解決策を説明するために、テストされていません。

+0

それは私が想像したものですが、もっと簡単なものを逃したと思っていました。ないと思います。あなたの答えをありがとう。 –

関連する問題