DbMigration 外键删除修改

 public partial class _20151112 : DbMigration
    {
        public override void Up()
        {
            DropForeignKey("dbo.T_RoleProductModule", "Product_Id", "dbo.T_Product");
            DropIndex("dbo.T_RoleProductModule", new[] { "Product_Id" });
            AddColumn("dbo.T_RoleProductModule", "RoleProduct_Id", c => c.Int());
            CreateIndex("dbo.T_RoleProductModule", "RoleProduct_Id");
            AddForeignKey("dbo.T_RoleProductModule", "RoleProduct_Id", "dbo.T_RoleProduct", "Id");
            DropColumn("dbo.T_RoleProductModule", "Product_Id");
        }

        public override void Down()
        {
            AddColumn("dbo.T_RoleProductModule", "Product_Id", c => c.Int());
            DropForeignKey("dbo.T_RoleProductModule", "RoleProduct_Id", "dbo.T_RoleProduct");
            DropIndex("dbo.T_RoleProductModule", new[] { "RoleProduct_Id" });
            DropColumn("dbo.T_RoleProductModule", "RoleProduct_Id");
            CreateIndex("dbo.T_RoleProductModule", "Product_Id");
            AddForeignKey("dbo.T_RoleProductModule", "Product_Id", "dbo.T_Product", "Id");
        }
    }
时间: 2024-08-16 04:25:54

DbMigration 外键删除修改的相关文章

MySQL的外键,修改表,基本数据类型,表级别操作,其他(条件,通配符,分页,排序,分组,联合,连表操作)

MySQL的外键,修改表,基本数据类型,表级别操作,其他(条件,通配符,分页,排序,分组,联合,连表操作): a.创建2张表 create table userinfo(nid int not null auto_increment primary key, name varchar(10), age int, part_nid int )engine=innodb default charset=utf8; create table part( nid int not null auto_in

056:ORM外键删除操作详解

外键删除操作: 如果一个模型使用了外键.那么在对方那个模型被删掉后,该进行什么样的操作.可以通过 on_delete 来指定.可以指定的类型如下:1.CASCADE :级联操作.如果外键对应的那条数据被删除了,那么这条数据也会被删除.2.PROTECT :受保护.即只要这条数据引用了外键的那条数据,那么就不能删除外键的那条数据.3.SET_NULL:设置为空.如果外键的那条数据被删除了,那么在本条数据上就将这个字段设置为空.如果设置这个选项,前提是要指定这个字段可以为空.4.SET_DEFAUL

MySQL数据库 外键,级联, 修改表的操作

1.外键: 用来建立两张表之间的关系 - 一对多 - 多对多 - 一对一 研究表与表之间的关系: 1.定义一张 员工部门表 id, name, gender, dep_name, dep_desc - 将所有数据存放在一张表中的弊端: 1.结构不清晰 ---> 不致命 2.浪费空间 ---> 不致命 3.可扩展性极差 ---> 不可忽视的弊端 - 类似于将所有python代码存放在一个py文件中,强耦合到一起了----> 解耦合 ----> 拆分表 - 拆分表解决以上问题.

数据库的SQL语句创建和主外键删除操作

1 create table UserType 2 3 ( 4 5 Id int primary key identity(1,1), Name nvarchar(25) not null 6 7 ) go 1 create table UserInfo 2 3 ( 4 5 Id int primary key identity(1,1), LoginPwd varchar(50) not null, LoginName varchar(50) not null, Name varchar(25

关于MYSQL:外键删除后,查询表发现外键依旧存在,再删一次会报错:原因及相关解决办法

1.创建表test6:外键名为test3_fk mysql> create table test6( -> id int, -> test_name varchar(32), -> constraint test3_fk foreign key(test_name) references student(name) -> ); Query OK, 0 rows affected (0.40 sec) mysql> desc test6; +-----------+---

Oracle外键级联删除和级联更新

1 级联删除 Oracle在外键的删除上有NO ACTION(类似RESTRICT).CASCADE和SET NULL三种行为. 下面以学生-班级为例说明不同情况下的外键删除,学生属于班级,班级的主键是学生的外键. -- 班级表 CRATE TABLE TB_CLASS ( ID NUMBER NOT NULL, --班级主键 NAME VARCHAR2(50), --班级名称 CONSTRAINT PK_TB_CLASS PRIMARY KEY (ID) ); -- 学生表 CREATE TA

MySQL中利用外键实现级联删除、更新

MySQL支持外键的存储引擎只有InnoDB,在创建外键的时候,要求父表必须有对应的索引,子表在创建外键的时候也会自动创建对应的索引.在创建索引的时候,可以指定在删除.更新父表时,对子表进行的相应操作,包括RESTRICT.NO ACTION.SET NULL和CASCADE.其中RESTRICT和NO ACTION相同,是指在子表有关联记录的情况下父表不能更新:CASCADE表示父表在更新或者删除时,更新或者删除子表对应记录:SET NULL则是表示父表在更新或者删除的时候,子表的对应字段被S

mysql--外键(froeign key)-----------MySQL外键使用详解

如果一个实体的某个字段指向另一个实体的主键,就称为外键被指向的实体,称之为主实体(主表),也叫父实体(父表).负责指向的实体,称之为从实体(从表),也叫子实体(子表) 作用:用于约束处于关系内的实体增加子表记录时,是否有与之对应的父表记录 如果主表没有相关的记录,从表不能插入 先插入主表数据后再插入从表数据: 在删除或者更新主表记录时,从表应该如何处理相关的记录 设置级联操作:在主表数据发生改变时,与之关联的从表数据应该如何处理    使用关键字:     on update     on de

浅谈MySQL外键

http://www.xiaoxiaozi.com/2009/07/12/1158/ 像MySQL这样的关系型数据库管理系统,它们的基础是在数据库的表之间创建关系的能力.通过方便地在不同表中建立记录到记录的联系,RDBMS可以利用不同的方法分析数据,同时保持数据库以系统的方式.最小的冗余进行组织. 简单描述:这些关系基本上依靠外键进行管理,在关系中所有表中具有相同含义的字段作为公共部分来连接不同表中的记录.外键可以是一对一的,一个表的记录只能与另一个表的一条记录连接,或者是一对多的,一个表的记录