• 締切済み

複数の項目をまとめてキーに出来ますか?

一つのテーブルに smallint型のkey1,key2,key3を持つテーブルのデータを これを key1+key2+key3のinteger形式のkeyAとして 他のテーブルに登録したり呼び出したりしたいのですが 可能でしょうか? 例えば key1=123,key2=45,key3=67 というデータを keyA=1234567 というkeyで管理したいのです。 Cにおける構造体のunionの様な呼び出しがしたいのですが・・・

みんなの回答

  • nora1962
  • ベストアンサー率60% (431/717)
回答No.3

cast( key1 as varchar ) || cast( key2 as varchar ) || cast( key3 as varchar ) でいけると思います。 PostgreSQLは関数インデックス使えるのでインデックスもつくれます。

  • phoenix343
  • ベストアンサー率15% (296/1946)
回答No.2

|key1=123,key2=45,key3=67 というデータを keyA=1234567 |というkeyで管理したいのです。 この場合、単純な計算じゃすまなくなります。 だって文字列じゃなく数値なんだから、 足したら123+45+67=235になっちゃうでしょ? key1=3桁、key2=2桁、key3=2桁 とか決めておいて、 key1*10000+key2*100+key3 という感じで登録する感じになるかと。 SQLだとこんな感じかな UPDATE T SET key = key1 * 10000 + key2 * 100 + key3 WHERE 条件;

homesweet
質問者

お礼

確認がおくれてすいません。 同じエリアをまとめて呼び出せるような事が出来たら容量を抑えられるかと思いついたのですが やはりそういう式で計算して別途キーを作成するしか手はなさそうですね。 ご回答有り難うございました。

  • ml_4649
  • ベストアンサー率14% (123/860)
回答No.1

できると思います

関連するQ&A