2017-04-03 38 views
0

我試圖在SQLAlchemy ORM中創建一個基於字符串的序列。我知道最好的做法是使用基於整數的列來管理表的ID,但在我的情況下,由於項目的一些要求,我需要將數據存儲爲基於ID的字符串PK。在Python中創建一個基於字符串的序列SQL Alchemy

我知道,在一些數據庫也可以使用像基於字符串的序列來存儲數據:

  • 「AAA1」
  • 「AAA2」
  • 「AAAN」

但在SQL鍊金術中,我無法通過使用Sequence方法來實現此目的。它只生成基於Integer的序列,而我找不到在序列生成中「附加」前綴的選項。

有一個簡單的解決方案來實現這一點?

回答

0

你可以在PostgreSQL與此類似做到這一點:

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')); 

在那個例子中我使用了to_hex函數來獲取十六進制表示,但你可以使用任何你喜歡的表情。

相關問題