2013-12-05 6 views
0

Я пытаюсь создать следующий SQL-код для создания столбца MySQL в таблице с помощью SQLAlchemy:Присвоение значений по умолчанию для столбцов

`win` tinyint(1) unsigned NOT NULL DEFAULT '0' 

Я использую это как мое SQLAlchemy заявление:

class Matches(Base): 
"""matches entity class""" 
__tablename__ = 'matches' 
__table_args__ = { 
    'mysql_engine': 'InnoDB', 
    'mysql_charset': 'utf8' 
} 
win = Column(TINYINT(1, unsigned=True), nullable=False, default=0) 

Это, однако, не создает значение по умолчанию, я хочу только следующее:

win TINYINT(1) UNSIGNED NOT NULL 

Также ш Я установил default = 'CURRENT_TIMESTAMP' (в другом столбце), он автоматически добавляет обновление, которое я не хочу. Я что-то упустил?

Кроме того, так же, как побочный вопрос, как бы я идти о создании что-то вроде этого, используя SQLAlchemy:

UNIQUE KEY `matchid` (`match_id`) 

Я знаю, что колонка имеет уникальный атрибут Его, который будет генерировать UNIQUE части, но когда я использую Атрибут Column key = 'matchid' ничего не происходит.

ответ

1

См server_default и unique из Column:

win = Column(TINYINT(1, unsigned=True), nullable=False, default=0, 
    server_default=text('0'), 
    unique=True, 
) 
Смежные вопросы