Пример #1
0
        private string SEQName(TableOperation op)
        {
            var name = string.Format("SEQ_{0}_{1}", this.Prepare(op.TableName), this.Prepare(op.PKName));

            name = OracleMigrationProvider.LimitOracleIdentifier(name);
            return(name);
        }
Пример #2
0
        /// <summary>
        /// 由于 Oracle 中 FK 最长是 30 个字符,所以这里需要对多余的字符串做截取操作。
        /// </summary>
        /// <param name="op"></param>
        /// <returns></returns>
        private static void PrepareFKConstraintName(FKConstraintOperation op)
        {
            var constraintName = op.ConstraintName;

            if (constraintName.StartsWith("FK_"))
            {
                constraintName = constraintName.Substring(3);
            }

            op.ConstraintName = OracleMigrationProvider.LimitOracleIdentifier(constraintName);
        }
Пример #3
0
        protected override void GenerateAddPKConstraint(IndentedTextWriter sql, string tableName, string columnName)
        {
            var pkName = string.Format("PK_{0}_{1}",
                                       this.Prepare(tableName), this.Prepare(columnName)
                                       );

            pkName = OracleMigrationProvider.LimitOracleIdentifier(pkName);

            sql.Write(@"
ALTER TABLE ");
            sql.Write(this.Quote(tableName));
            sql.Write(@"
    ADD CONSTRAINT ");
            sql.Write(this.Quote(pkName));
            sql.Write(@"
    PRIMARY KEY (");
            sql.Write(this.Quote(columnName));
            sql.Write(")");
        }