sqlalchemy创建一个外键?

时间:2009-08-29 01:17:08

标签: python sql sqlalchemy

我在表格中有一个复合PK(整数id,varchar(2)lang)

我想从其他表中创建一个FK到只有PK的一半。这意味着我在Strings表(翻译)中可能有许多与FK匹配的行。我只需要存储id,并且具有由DB维护的引用完整性。

这可能吗?如果是这样,怎么样?

1 个答案:

答案 0 :(得分:3)

这是wiki

  

引用表中的列   必须是主键或其他   引用表中的候选键。引用列的一行中的值必须出现在引用表中的单个行中。

假设你有这个:

id | var            
1  |  10            
1  |  11          
2  |  10

外键必须从引用的表中引用恰好一行。这就是通常它引用主键的原因。

在您的情况下,您需要在存储ID的位置创建另一个Table1(id)并使列成为唯一/主键。当前表中的id列不是唯一的 - 你不能在你的情况下使用它...所以你创建一个Table1(id - 主键)并使当前表中的id成为一个外键表1 即可。现在,您可以在Table1中为id创建外键,并且当前表中的主键是可以的。