ship_idとskill_idの組がUniqueであるっつうテーブル制約を加えたい。
table_obj= Table('table_a', metadata,
Column('id', Integer, primary_key=True),
Column('ship_id', Integer, ForeignKey('ship.id') , unique=True),
Column('skill_id', Integer, ForeignKey('skill.id'), unique=True),
)こうやりがち。でもこれぶー。ship_idとskill_idにそれぞれUnique制約かかっちゃって、何にも入らないテーブルの一丁上がり。
table_obj= Table('table_a', metadata,
Column('id', Integer, primary_key=True),
Column('ship_id', Integer, ForeignKey('ship.id')),
Column('skill_id', Integer, ForeignKey('skill.id')),
UniqueConstraint('ship_id', 'skill_id', name='ship_skill')
)UniqueConstraintってのがあったよ。これで
CREATE TABLE table_a (
id INTEGER NOT NULL AUTO_INCREMENT,
ship_id INTEGER,
skill_id INTEGER,
delflg SMALLINT NOT NULL,
created DATETIME,
updated DATETIME,
PRIMARY KEY (id),
FOREIGN KEY(skill_id) REFERENCES mst_optionskill (id),
FOREIGN KEY(ship_id) REFERENCES ship (id),
CONSTRAINT ship_skill UNIQUE (ship_id, skill_id)
)的なアレになる。よかった。
