2017-01-20 8 views
0

エントリの特定のタイプの合計に基づいてIDフィールドを自動的に計算するトリガを設定しようとしています。私はすべてのエントリエントリタイプに基づいてIDを計算するSqliteトリガ

>  BEGIN 
>   UPDATE master_workorders 
>   SET wo_no = master_workorders.wo_sub || substr('0000'||master_workorders.pkuid, -4,4)||'-'|| substr(master_workorders.rdate,3,2) 
>   WHERE rowid = NEW.rowid; 
>  END 

これはWO0001-17 BB0002-17とM0003-17各ID番号(真ん中の4桁)などのIDを返すの数に基づいてIDインデックスのID番号がどこにあるか、それが働いていエントリ。私は自分のID番号がWO0001-17 BB0001-17 M0001-17として各タイプ(WO、BB、Mこれらの値はwo_sub列に格納されている)の番号を表すようにしたい。新しいBB作業命令が追加されればBB0002 -17などとなる。

+0

有効なSQLではありません。いくつかのサンプルデータを表示する。 –

+0

それは欲しいものを正確に実行しませんが、wo_subフィールドをpkuidフィールドに連結し、ゼロを埋め込み、rdateフィールドからWO0001に似た新しいフィールドに年の最後の2桁を連結します-17。それがどのように無効であるか説明してください。 –

+0

'エラー:" substr "の近く:構文エラー' –

答えて

1

サブクエリでmaster_workorders.pkuidを置き換え、現在のカウントで自動インクリメントIDを交換するには:

... || (SELECT COUNT(*) FROM master_workorders WHERE wo_sub = NEW.wo_sub) || ... 
+0

それは、ゼロを埋め込んだ数字を得るために部分文字列を追加するだけでした。再度、感謝します。 –

関連する問題