2016-02-21 528 views

回答

4

您可以使用域(PostgreSQL大小)。

CREATE DOMAIN my_bytea_8 AS bytea CHECK(length(value) <= 8); 

postgres=# SELECT 'NAZDARBAZAR'::my_bytea_8; 
ERROR: 23514: value for domain my_bytea_8 violates check constraint "my_bytea_8_check" 
SCHEMA NAME: public 
DATATYPE NAME: my_bytea_8 
CONSTRAINT NAME: my_bytea_8_check 
LOCATION: ExecEvalCoerceToDomain, execQual.c:4042 
+1

或者只是在相關列上引發CHECK。 –

+0

對於那些感興趣的人,我找到了一系列的鏈接來解釋這個:bytea長度函數(http://www.postgresql.org/docs/8.2/static/functions-binarystring.html);創建一個域(http://www.postgresql.org/docs/9.1/static/sql-createdomain.html);和SQL Alchemy約束(http://docs.sqlalchemy.org/en/latest/core/constraints.html);但是在SQLAlchemy中創建域時存在問題(http://stackoverflow.com/questions/18662846/how-to-represent-a-custom-postgresql-domain-in-sqlalchemy);在SQLAlchemy中可能有另一種方法來完成此操作。 – Soferio

相關問題