public override void AddForeignKey(string name, string primaryTable, string[] primaryColumns, string refTable, string[] refColumns, Framework.ForeignKeyConstraint constraint) { if (ConstraintExists(primaryTable, name)) { Logger.Warn("Constraint {0} already exists", name); return; } ExecuteNonQuery( String.Format( "ALTER TABLE {0} ADD CONSTRAINT {1} FOREIGN KEY ({2}) REFERENCES {3} ({4})", primaryTable, name, String.Join(",", primaryColumns), refTable, String.Join(",", refColumns))); }
public override void AddForeignKey(string name, SchemaQualifiedObjectName primaryTable, string[] primaryColumns, SchemaQualifiedObjectName refTable, string[] refColumns, ForeignKeyConstraint onDeleteConstraint = ForeignKeyConstraint.NoAction, ForeignKeyConstraint onUpdateConstraint = ForeignKeyConstraint.NoAction) { if (onDeleteConstraint == ForeignKeyConstraint.SetDefault || onUpdateConstraint == ForeignKeyConstraint.SetDefault) { throw new NotSupportedException("MySQL не поддерживает SET DEFAULT для внешних ключей"); } base.AddForeignKey(name, primaryTable, primaryColumns, refTable, refColumns, onDeleteConstraint, onUpdateConstraint); }