/// <summary> /// 生成增加外键约束的语句 /// </summary> /// <param name="op">增加外键约束的对象</param> protected override void Generate(AddFKConstraint op) { using (var sql = this.Writer()) { sql.Write("ALTER TABLE "); sql.Write(this.Quote(op.DependentTable)); sql.Write(@" ADD CONSTRAINT "); sql.Write(this.Quote(op.ConstraintName)); sql.Write(@" FOREIGN KEY "); sql.Write(this.Quote(op.DependentTable)); sql.Write(@" ("); sql.Write(this.Quote(op.DependentTableColumn)); sql.Write(") REFERENCES "); sql.Write(this.Quote(op.PrincipleTable)); sql.Write("("); sql.Write(this.Quote(op.PrincipleTableColumn)); sql.Write(")"); if (op.NeedDeleteCascade) { sql.Write(" ON DELETE CASCADE"); } sql.Write(";"); this.AddRun(sql); } }
protected override void Generate(AddFKConstraint op) { var oldName = op.ConstraintName; PrepareFKConstraintName(op); base.Generate(op); op.ConstraintName = oldName; }
/// <summary> /// 生成增加外键约束的语句 /// </summary> /// <param name="op">增加外键约束的对象</param> protected override void Generate(AddFKConstraint op) { //SQLite 不支持 }
protected abstract void Generate(AddFKConstraint op);