0

私は SQL とデータベースに比較的慣れていないので、次のトピックで助けを求めています。私は次の表を持っています:(ジュニア男性 - > jm、ジュニア女性 - > jf、成人男性 - > am、成人女性 - > af)

id    code     name    
1     jm       john       
2     am       patrick    
3     af       jane       
4     jm       peter      
5     jm       derrick    
6     af       mary       
7     jf       jessica  

この方法で、コードと自動インクリメント数字で構成される参照としてテーブル内にフィールドを作成したいと考えています。

id      code     name     reference

1     jm       john       jm001

2     am       patrick    am001

3     af       jane       af001

4     jm       peter      jm002

5     jm       derrick    jm003

6     af       mary       af002

7     jf       jessica    jf001

誰かがこれを行う方法についてのヒントを教えてもらえますか? ありがとうございました

4

2 に答える 2

1

まず、「なぜ?」と自問してください。マーティンのコメントのように。この質問に対する適切な答えがある場合は、おそらく各タイプのシーケンスが探しているものです。たとえば、オラクルでは次のようになります。

CREATE SEQUENCE jm_seq START WITH 1 INCREMENT BY 1 NOMAXVALUE NOCYCLE;
CREATE SEQUENCE jf_seq START WITH 1 INCREMENT BY 1 NOMAXVALUE NOCYCLE;
CREATE SEQUENCE am_seq START WITH 1 INCREMENT BY 1 NOMAXVALUE NOCYCLE;
CREATE SEQUENCE af_seq START WITH 1 INCREMENT BY 1 NOMAXVALUE NOCYCLE;

次に、特定のタイプを入力するときにこれらを使用できます。たとえば、ジュニアの男性を入力するには、次のように使用します。

Insert into table_name 
  values (id_seq.nextVal, 'jm', 'Bart', 'jm' || jm_seq.nextVal);

また、これはあなたの例のように先行ゼロを与えないので、必要に応じて数値をフォーマットすることを検討してください.

于 2011-09-28T19:14:05.840 に答える