Postgresql中的db.Drop表CASCADE

时间:2013-11-24 18:07:00

标签: servicestack ormlite-servicestack

当我们删除表时,是否可以级联到其他表。 Postgresql支持此功能。

PostgreSQL DROP TABLE语法 DROP TABLE [IF EXISTS] table_name [CASCADE | RESTRICT];

我试着没有运气。

    public void CreateDbTable()
    {
        using (IDbConnection db = DbFactory.OpenDbConnection())
        {

            using (var trans = db.OpenTransaction())
            {
                db.ExecuteSql("SET CONSTRAINTS ALL DEFERRED");  
                db.DropTables(Tables);  -- Add Parameter to Cascade or another methode
                trans.Commit();
            }

            using (var trans = db.OpenTransaction())
            {
                try
                {
                    db.CreateTable<Address>();

                    db.CreateTable<User>();
                    db.CreateTable<Group>();
                    db.CreateTable<UserGroup>();

                    db.CreateTable<Fee.Fee>();
                    db.CreateTable<Event.Event>();
                    db.CreateTable<Event.EventFee>();
                    db.CreateTable<Person.Person>();
                    db.CreateTable<Registration.Registration>();



                    db.CreateTable<Country>();
                    db.CreateTable<Address>();

                    db.CreateTable<User>();
                    db.CreateTable<Group>();
                    db.CreateTable<UserGroup>();

                    db.CreateTable<Fee.Fee>();
                    db.CreateTable<Event.Event>();
                    db.CreateTable<Event.EventFee>();
                    db.CreateTable<Person.Person>();
                    db.CreateTable<Registration.Registration>();
                    trans.Commit();
                }
                catch (Exception)
                {
                    trans.Rollback();
                    throw;
                }
            }
        }
    }

0 个答案:

没有答案