Exemplo n.º 1
0
        /// <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);
            }
        }
Exemplo n.º 2
0
        /// <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);
            }
        }
Exemplo n.º 3
0
        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);
            }
        }
Exemplo n.º 4
0
 protected abstract void Generate(CreateNormalColumn op);
Exemplo n.º 5
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="op"></param>
 protected override void Generate(CreateNormalColumn op)
 {
     throw new NotImplementedException();
 }