10

SQLAlchemy と Django models.py で記述されたこの単純なテーブルを考えると、NULL でない場合に UPC を一意に設定するにはどうすればよいでしょうか。UPC はすべてのアイテムで利用できるわけではありませんが、利用できる場合は一意である必要があります。

class Products(base):  
    __tablename__ = u'products'  
    id = Column(Integer(), primary_key=True, autoincrement = True)  
    product_name = Column(String(), unique=True, nullable=False)  
    upc = Column(String(), nullable = True)  

class Products(models.Model):
    id = models.AutoField(primary_key=True)
    product_name = models.TextField()
    upc = models.TextField(null=True, blank=True)
4

1 に答える 1

12

NULL 値を持つ複数の行は、一意制約の問題にはなりません。「値」のみが一意である必要があり、NULL は値なしです。

やってみました?:

upc = Column(String(), unique=True, nullable=True) 
于 2012-09-19T18:36:53.610 に答える