精华内容
下载资源
问答
  • 但是这个只能分页一个表,我的2个表是外键关系的。没加分页前显示,加了这个就显示不了了 <p>private UserDBContext db = new UserDBContext();  // GET: BookInfo  public ...
  • 换句话数,如果在数据库中孤立的分类,(即该分类的一个列引向了一个不存在的门类),那就不创建关系。2.Enforce For Replication (强制用于复制):这个选项应用于数据库的复制,复制时一种技术,

    1.Check existing data on creation (在创建或重新启动时检查现有数据):如果设置为YES,那么如果现有的数据库记录不符合关系要求,则不允许创建该关系。换句话数,如果在数据库中有孤立的分类,(即该分类的一个列引向了一个不存在的门类),那就不能创建关系。

    2.Enforce For Replication (强制用于复制):这个选项应用于数据库的复制,复制时一种技术,可以使位于不同地方的SQLserver中的数据保持一致

    3.Enforce For Replication(强制外键约束):这大概使最重要的选项了。他告诉SQLserver要确保在涉及该关系的数据库表上的操作不要破坏这种关系,,当选中这个选项时,默认情况下SQLserver不允许在不存在门类上添加分类,或是删除一个已存在分类的门类记录。

    4.INSERT and UPDATE specifiction (INSERT 和UPDATE 规范):

                 Cascade(级联):更改某个已存在主表时,将会引起从表相应的改变,以保持主从表之间连接的完整性,同样如果修改了主表,他的从表仍然属于他。入果删除主表,则与主表相关的从表信息也将被删除。

                

                

    展开全文
  • 最近,在论坛中,遇到了不少比较难的sql问题,虽然自己都解决,但发现过天后,就记不起来了,也...SQLServer如何删除多(10以上)中的同一个外键。 http://bbs.csdn.net/topics/390633551 最近在做...

     

    最近,在论坛中,遇到了不少比较难的sql问题,虽然自己都能解决,但发现过几天后,就记不起来了,也忘记解决的方法了。

     

    所以,觉得有必要记录下来,这样以后再次碰到这类问题,也能从中获取解答的思路。



    1、求助!SQLServer如何删除多表(10表以上)中的同一个外键。

     

    http://bbs.csdn.net/topics/390633551

    最近在做一个OA系统,用SQLServer2008数据库。系统里有个删除员工的功能,但是考虑到其他表中有员工表的外键,删除时应该将其他表中相关的记录全部删除,请问如何写语句?
    比如员工表是OA_User,员工编号Uid,数据库中最少有10张表里有Uid外键,请问如何删除其他表中的相关记录?


     

    create table OA_User(Uid int primary key ,uname varchar(20))
    
    
    create table OA_tb
    (
    id int identity(1,1)primary key ,
    Uid int foreign key references OA_User(Uid) on delete cascade --级联删除
    )
    
    insert into OA_User
    values(1,'张三'),
          (2,'李四')
          
    insert into OA_tb
    values(1),(1),(1),(2),(1)      
    
    
    --删除主表中udi 为2的记录,没有报错
    delete from oa_user where uid = 2
    
    --附表中的uid为2的记录,自动删除
    select * from oa_tb 
    /*
    id	Uid
    1	1
    2	1
    3	1
    5	1
    */

    也可以通过图形化操作来实现:

     





    2、统一改换查询出的字段。。这是不是想多了?

    http://bbs.csdn.net/topics/390610092

    能不能这样

    select     A.* as A_* 
    from QAQuestion Q 
    inner join QAAnswer A ON A.QuestionID = Q.ID

    简单地说,不想一个个地去给每个字段as别名
    我如上去写只是打个比方。。实际运行不了的,想得到的查询结果是
    A_字段1,A_字段2,A_字段3,A_字段4

    有没有办法呢?

     

    我的回复:

    本质上来说,只有在sql server端,能把select a.* as a_*,也就是自动进行转换,才能支持。

    因为在sql server端,你写的sql语句是各式各样的,要想实现你的A.* as A_*,实际上就是要改写查询,改为:

    select a.字段1 as a_字段1,
           a.字段2 as a_字段2,
           a.字段3 as a_字段3,
    from a

    下面是通过动态语句来实现的:

    --先建个表
    select * into wc_table
    from sys.objects
    
    /*
    要实现
    select a.* as a_*
    from wc_table
    的效果
    */
    
    
    --动态生成语句为:
    declare @sql varchar(max);
    
    set @sql = '';
    
    select @sql = @sql + ',' + c.name + ' as A_' + c.name   
    from sys.tables t
    inner join sys.columns c
            on t.object_id = c.object_id
    
    where t.name = 'wc_table'
    order by c.column_id
    
    
    set @sql = 'select ' + 
               STUFF(@sql,1,1,'') +
               ' from wc_table A'
    
    
    select @sql           
    /*
    我把结果格式化了一下就是这样:
    
    SELECT name                AS A_name, 
           object_id           AS A_object_id, 
           principal_id        AS A_principal_id, 
           schema_id           AS A_schema_id, 
           parent_object_id    AS A_parent_object_id, 
           type                AS A_type, 
           type_desc           AS A_type_desc, 
           create_date         AS A_create_date, 
           modify_date         AS A_modify_date, 
           is_ms_shipped       AS A_is_ms_shipped, 
           is_published        AS A_is_published, 
           is_schema_published AS A_is_schema_published 
    FROM   wc_table A  
    */
    
    exec(@sql) 

     

    转载于:https://www.cnblogs.com/momogua/p/8304546.html

    展开全文
  • 当我保存时提示错误“cannot add foreign key constraint”,不成功创建外键约束。从网上搜了很多,主要一下种情况吧: 1)要关联的字段类型或长度不一致。 2)两要关联的编码不一样。 3)某个已经...

    当我保存时提示错误“cannot add foreign key constraint”,不能成功创建外键约束。从网上搜了很多,主要有一下几种情况吧:

    1)要关联的字段类型或长度不一致。

    2)两个要关联的表编码不一样。

    3)某个表已经有记录了。

    4)将“删除时”和“更新时”都设置相同,如都设置成CASCADE。

    我从第一种情况开始检查,最后是通过第四个方法解决的问题,尽管解决后感觉并不难,但当时真的有点迷惑,整个搜索寻找解决办法的过程是很有收获的。

    展开全文
  • MySQL外键约束

    2017-04-21 21:25:29
    关系键是一个表中的一个或几个属性,用来标识该表的每一行或与另一个表产生联系。 其中就包括外键0 主键(primary key或unique key)又称主码,数据库表中对储存数据对象予以唯一和完整标识的数据列或属性的组合。一...

    关系键是关系数据库的重要组成部分。关系键是一个表中的一个或几个属性,用来标识该表的每一行或与另一个表产生联系。 其中就包括外键

    1 主键(primary key或unique key)

    又称主码,数据库表中对储存数据对象予以唯一和完整标识的数据列或属性的组合。一个数据列只能有一个主键,且主键的取值不能缺失,即不能为null。

    技术角度看,primary key和unique key有相似之处。但还是有差异:

    • 作为primary key的域/域组不能为null;而unique key可以
    • 在一个表中只能有一个primary key,而多个unique key可以同时存在
    • 更大的区别在逻辑设计上。primary key一般在逻辑设计中用作记录标识,这也是设置primary key的本来用意。而unique key只是为了保证域/域组的唯一性

    2 外键(foreign key)

    又称外部键。在关系数据库中,每个数据表都是由关系来连系彼此的关系,父数据表(Parent Entity)的主键(primary key)会放在另一个数据表,当做属性以创建彼此的关系,而这个属性就是外键。

    比如,学生跟老师之间是教学关系,学生数据表会有个属性叫指导老师(FK),而这个值就是对应到老师数据表的老师代号(PK),学生的指导老师就是外键。

    注意 : 外键不一定要与相应主键同名,只是在应用中为便于识别,当主键与相应外键属于不同关系时,往往取同名

    作用

    保持数据一致性,完整性,主要目的是控制存储在外键表中的数据。 使两张表形成关联,外键只能引用外表中的列的值或使用空值。

    案例

    如果不使用外键,表2的学号字段插了一个值(比如20140999999),但该值在表1中并没有。这时,数据库允许插入,并不会对插入的数据做关系检查。
    然而在设置外键时,你插入表2学号字段的值必须要求在表1的学号字段能找到。 同时,如果你要删除表1的某个学号字段,必须保证表2中没有引用该字段值的列,否则就没法删除。这就是所谓的保持数据的一致性和完整性。
    如果表2还引用表1的某个学号,你却把表1中的这个学号删了,表2就不知道这个学号对应的学生是哪个学生。

    展开全文
  • 最近天我做一个模块要给一张添加外键,总是添加不上,我也是第一次用mysql数据库,最后查询资料得知只有存储引擎为INNODB才能建立外键,而我的存储引擎则是MyISAM,经过努力最终得以成功更改我的默认存储引擎。...
  • mysql主外键问题

    2020-10-14 20:54:16
    1,两张表里要设主键和外键的字段的数据类型或者数据长度不一样 (例如这个是int 另外一个是tinyint,或者都是int,但是设置的长度不同) 2,某个表里已经记录了 3、两个表的引擎不一样,查看表的引擎语句: show ...
  • 主键 候选键 外键

    千次阅读 2010-09-14 18:02:00
    几个概念: 1)候选键:关系中的一个属性组,其值唯一标识一个元组,若从该属性组中... 所谓外键是指本表的某个值来自另外一个表的某个值(一般是另外表的主键),即本表的这个值要么允许为空,要
  • 有几个知识点没有弄明白: 1. 查看10046事件(文章中有使用10046及说明) 2. 延迟段概念 3. user_constraint视图,查看结构 下面记录学到的一些东西 、ORA-02246报错 中的唯一/主键被...
  • 外键约束详解及术语释疑

    千次阅读 2014-10-06 11:33:44
    1)候选键(CandidateKey):关系中的一个属性组,其值唯一标识一个元组,若从该属性组中去掉任何一个属性,它就不具有这一性质了,这样的属性组称作候选键(候选码)。 2)主键(PrimaryKey):当多个候选键...
  • 以前,在pycharm中,我们可以使用连接数据库,发送字符串(sql语句)的方式来操作数据库(curd),但是这种会容易出现sql注入的问题,而且异常麻烦,我必须清楚的知道我要创建几张表,现在有几个表,什么字段?...
  • SQL语言中 主外键关系

    2009-01-25 00:22:00
    在一个数据库中多个表之间 相互之间会外键的关系 , 那么比如在一个表中 它其中的几列分别是另外个表的外键 , 那么当我们需要想从表中插入测试数据的时候 , 应该首先需要插入的数据,在主表中是否存在 , 假如不...
  • mysql 1215错误——外键建立失败

    万次阅读 2016-11-16 11:30:52
    在Mysql中创建数据时,经常会遇到问题而失败,其中建立外键有很多细节需要我们去留意,主要以下种常见原因。 1. 两个字段的类型或者大小不严格匹配。例如,如果一个是int(10),那么外键也必须设置成int(10),...
  • 2,主键是唯一的,一个表通过一个主键可以确定一条记录,一条记录的主键是SF110如果你再向里面插入SF110的记录SQL就会报错。  3,有时可以用两个字段来建立主键,这叫联合主键。这种情况出现在当一个字段无法...
  • 例如,如果一个是int(10),那么外键也必须设置成int(10),而不是int(11),也不是tinyint。另外,你还必须确定两个字段是否都为signed或者unsigned,这两字段必须严格地一致匹配。  2. 设置外键的字段没...
  • mysql 1215错误——外键建立失败原因及解决办法在Mysql中创建数据时,经常会遇到问题而失败,其中建立外键有很多细节需要我们去留意,主要以下种常见原因。1. 两个字段的类型或者大小不严格匹配。例如,如果...
  • * 每个表只能定义一个主键 * 主键值必须唯一标识表中的每一行,且不为NULL,即表中不可能存在相同主键值的两行数据。这是唯一性原则。 * 一个字段名只能在联合主键字段表中出现一次 * 联合主键不包含不必要...
  • My SQL的 几个概念

    2016-10-22 09:21:30
    一个表只能一个主键,但可以多个候选索引;主键常常与外键构成参照完整性约束,防止出现数据不一致。 主键可以保证记录的唯一和主键域非空,数据库管理系统对于主键自动生成唯一索引,所以主键也是一个特殊的...
  • 数据库中几个基本概念 主码 外码

    万次阅读 多人点赞 2015-07-17 10:20:22
    一个关系()中,主码不一定只有一个,但是一定要的。因为元组,是对世界中某种事物的数据描述,而世界中各种事物,都具有唯一性,都是可以区分的。在计算机中为了描述事物的唯一性,引入了主码的概念。在一个...
  • 数据库的几个概念

    2019-02-14 20:07:10
    关系模型的完整性约束 实体完整性:关系必须主键,...  索引是一种数据库对象(数据结构),是一个单独的、物理的数据库结构,它是某个中一列或若干列值的集合和相应的指向中物理标识这些值的数据页的逻辑...
  • 注1:一张主键只能有一个,可以个外键以及唯一索引 注2:Oracle数据库共有5个约束:主键、外键、非空、唯一、条件非空:这个列的值不为空(NOT NULL)唯一:这个列的值在中是唯一存在的,不重复,但可以...
  • 本文将分享15个初学者必看的基础SQL查询语句,都很基础,但是你不一定都会,所以好好看看吧。 1、创建和数据插入SQL 我们在开始创建数据和向中...现在我们来创建几个餐厅订单管理的数据,一共用到3张数
  • 关系

    千次阅读 2004-09-24 11:14:00
    关系分种类型:一、一对一关系 需要一个主键,一个外键表,主键中存在的数据,外键中才可以添加,实际上每个 列都为主键,比如: 主键中ID为1、2、3,外键中ID只能为1或者2或者3,不添加主键中...
  • 数据库开发题目-SQL 约束种?

    千次阅读 2019-02-25 14:47:12
    UNIQUE: 控件字段内容不重复,一个表允许多个 Unique 约束。 PRIMARY KEY: 也是用于控件字段内容不重复,但它在一个表只允许出现一个。 FOREIGN KEY: 用于预防破坏表之间连接的动作,也防止非法数据插入外键...
  • 3 导出Excel数据,在添加进来,其中一个表有BLOB字段,不导出Excel。 4 用KETTLE进行同步,这是个好工具,不仅同步相同表的数据,也同步不同表的数据,当时还不会用。学习需要时间,情况比较紧急,就没有用 ...
  • Oracle数据库之创建结构

    千次阅读 2015-06-10 13:24:15
    Oracle数据库之创建结构主键与外键主键:关系型数据库中的一条记录中若干个属性,若其中的某一个属性组(可以是一个属性,也可以是多个)唯一标识一条记录,那么该属性组就是主键。外键:关系型数据库中的一...
  • 但是,是说合并就合并的吗~ NONONO~ 之间其实也人际关系的~ 怎么说呢,如果,之间没有共同好友,那他们是不会合并的! 这共同好友就是我们传说中的~ primary key & foreign key,主键...

空空如也

空空如也

1 2 3 4 5 ... 8
收藏数 141
精华内容 56
关键字:

一个表能有几个外键