提交 ab0a14e1 编写于 作者: S serge-rider

#8286 SQLite: multiple unnamed foreign keys support


Former-commit-id: 368b5bc1
上级 d4d19ac6
......@@ -48,6 +48,7 @@ class ForeignKeysCache extends JDBCCompositeCache<GenericStructContainer, Generi
private final Map<String, GenericUniqueKey> pkMap = new HashMap<>();
private final GenericMetaObject foreignKeyObject;
private Set<String> cachedFKNames;
ForeignKeysCache(TableCache tableCache)
{
......@@ -233,7 +234,18 @@ class ForeignKeysCache extends JDBCCompositeCache<GenericStructContainer, Generi
@Override
protected String getDefaultObjectName(JDBCResultSet dbResult, String parentName) {
if (cachedFKNames == null) {
cachedFKNames = new LinkedHashSet<>();
}
final String pkTableName = GenericUtils.safeGetStringTrimmed(foreignKeyObject, dbResult, JDBCConstants.PKTABLE_NAME);
return "FK_" + parentName + "_" + pkTableName;
int keySeq = GenericUtils.safeGetInt(foreignKeyObject, dbResult, JDBCConstants.KEY_SEQ);
String fkName = "FK_" + parentName + "_" + pkTableName;
if (cachedFKNames.contains(fkName) && keySeq == 1) {
// Multiple unnamed foreign keys - #8286
// Column sequnce 1 means new FK so lets make a new one
fkName += "_" + (cachedFKNames.size() + 1);
}
cachedFKNames.add(fkName);
return fkName;
}
}
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册