handle on delete properly for oci8

This commit is contained in:
Jim Lambert 2020-02-14 15:18:04 -05:00
parent dc3bdd2ffd
commit 68872f41d1

View File

@ -1260,7 +1260,12 @@ func (scope *Scope) addForeignKey(field string, dest string, onDelete string, on
return
}
if scope.isOracle() {
scope.Raw(fmt.Sprintf(`ALTER TABLE %s ADD CONSTRAINT %s FOREIGN KEY (%s) REFERENCES %s`, scope.QuotedTableName(), scope.quoteIfPossible(keyName), scope.quoteIfPossible(field), dest)).Exec()
query := fmt.Sprintf(`ALTER TABLE %s ADD CONSTRAINT %s FOREIGN KEY (%s) REFERENCES %s`, scope.QuotedTableName(), scope.quoteIfPossible(keyName), scope.quoteIfPossible(field), dest)
if !strings.EqualFold(onDelete, "RESTRICT") {
query = fmt.Sprintf("%s ON DELETE %s", query, onDelete)
}
// ON UPDATE is not supported by oracle
scope.Raw(query).Exec()
return
}
var query = `ALTER TABLE %s ADD CONSTRAINT %s FOREIGN KEY (%s) REFERENCES %s ON DELETE %s ON UPDATE %s`