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) )
的なアレになる。よかった。