2017-04-03 17 views
0

SQLAlchemy ORMで文字列ベースのシーケンスを作成しようとしています。私はベストプラクティスはテーブルのIDを管理するために整数ベースの列を使用することですが、私の場合は、私はIDのための文字列ベースのPKとしてデータを格納する必要があるプロジェクトのいくつかの要件のため、Pythonで文字列ベースのシーケンスを作成するSQL Alchemy

  • "AAA1"
  • "AAA2"
  • "AAAN"

は、私はいくつかのデータベースでは、次のように文字列ベースのシーケンスを使用してデータを格納することが可能であることを知っていますしかし、SQLの錬金術では、Sequenceメソッドを使ってこれを達成することはできません。これはIntegerベースのシーケンスを生成するだけであり、シーケンス生成でプレフィックスを「追加」するオプションを見つけることができません。

これを達成するための簡単な解決策がありますか?私は16進数表現を取得するためにto_hex機能を使用している例では

CREATE TABLE test(
    id text PRIMARY KEY, 
    val text 
); 

CREATE SEQUENCE test_id_seq OWNED BY test.id; 

ALTER TABLE test 
    ALTER id SET DEFAULT to_hex(nextval('test_id_seq')); 

を、しかし、あなたはあなたが好きな任意の式を使用することができます。

答えて

0

あなたはこれに類似のPostgreSQLでこれを行うことができます。

関連する問題