/// <summary> /// 生成创建普通的数据列的语句 /// </summary> /// <param name="op">创建普通列的实例对象</param> protected override void Generate(CreateNormalColumn op) { //忽略一般列的自增状态。 //if (op.IsIdentity) //{ // throw new NotSupportedException($"SQLite 数据库不支持创建自增列:{op.TableName}.{op.ColumnName}!"); //} using (var sql = this.Writer()) { sql.Write("ALTER TABLE "); sql.Write(this.Quote(op.TableName)); sql.WriteLine(); sql.Indent++; sql.Write("ADD "); this.GenerateColumnDeclaration(sql, op.ColumnName, op.DbType, op.Length, false, op.IsForeignKey); this.AddRun(sql); } }
/// <summary> /// 生成创建普通的数据列的语句 /// </summary> /// <param name="op">创建普通列的实例对象</param> protected override void Generate(CreateNormalColumn op) { if (op.IsIdentity) { throw new NotImplementedException("MySql 数据库不支持创建自增列!"); } using (var sql = this.Writer()) { sql.Write("ALTER TABLE "); sql.Write(this.Quote(op.TableName)); sql.WriteLine(); sql.Indent++; sql.Write("ADD "); this.GenerateColumnDeclaration(sql, op.ColumnName, op.DataType, op.Length, false, op.IsForeignKey); sql.Write(";"); this.AddRun(sql); } }
protected override void Generate(CreateNormalColumn op) { using (var sql = this.Writer()) { sql.Write("ALTER TABLE "); sql.Write(this.Quote(op.TableName)); sql.WriteLine(); sql.Indent++; sql.Write("ADD "); //自增列必然是不可空的,在创建列时必须同时把不可空约束给创建好了。 this.GenerateColumnDeclaration(sql, op.ColumnName, op.DbType, op.Length, op.IsIdentity, op.IsForeignKey); if (op.IsIdentity) { sql.Write(" IDENTITY(1,1)"); } this.AddRun(sql); } }
protected abstract void Generate(CreateNormalColumn op);
/// <summary> /// /// </summary> /// <param name="op"></param> protected override void Generate(CreateNormalColumn op) { throw new NotImplementedException(); }