Tag: 外键

在多个表中引用主键的外键?

我必须在数据库员工下面有两个表,即employees_ce和employees_sn。 他们都有各自独特的主键列。 我有另一个名为deductions的表,我想要引用employees_ce的主键以及employees_sn的外键列。 这可能吗? 例如 employees_ce ————– empid name khce1 prince employees_sn —————- empid name khsn1 princess 这是可能的吗? deductions ————– id name khce1 gold khsn1 silver

不能截断表,因为它正在被FOREIGN KEY约束引用。

使用MSSQL2005,如果我首先截断子表(具有FK关系主键的表),我可以截断具有外键约束的表吗? 我知道我也可以 使用没有where子句的DELETE ,然后RESEED身份(或) 删除FK,截断表,并重新创buildFK。 我认为,只要我截断父表之前的子表,我会没事没有做任何上述选项,但我得到这个错误: 无法截断表'TableName',因为它正被FOREIGN KEY约束引用。

在一个表中定义多个外键到许多表

我有3个模型: post : ID 标题 身体 照片 : ID 文件path 评论 : ID POST_ID 身体 和DB中的对应表。 现在,如果我只想为我的post发表评论,我可以简单地添加以下外键: ALTER TABLE comment ADD FOREIGN KEY (post_id) REFERENCES post (id) 。 但我想对其他模型(照片,简介,video等)的意见,并保留在一个表中的所有意见。 在这种情况下如何定义外键(我肯定需要ORM的FK)?

Sql – 间接外键

我有一些关于数据库devise的问题。 有没有这个名字? 这是好的做法吗? 任何性能考虑? 我有一个用于存储关系的通用表结构。 最近我重构了一些东西来使用这个generics结构,而不是直接的Fk列,但是现在我不确定这是否是最好的想法。 原始模式: + —————— + + ——————— + + —— —————- + | 预订| | 注意| | MetaParent | | —————— | | ——————— | | ———————- | | Id | | Id | | Id | | 注意| | MetaParentId:(空)| | MetaTableId | | + ——- + + —- […]

复合键作为外键

我在MVC 3应用程序中使用entity framework4.1。 我有一个实体,我有主键由两列(复合键)组成。 这被另一个实体用作外键。 如何build立关系? 在正常的scnerios我们使用: public class Category { public string CategoryId { get; set; } public string Name { get; set; } public virtual ICollection<Product> Products { get; set; } } public class Product { public int ProductId { get; set; } public string Name { get; set; } public string CategoryId […]

何时使用“ON UPDATE CASCADE”

我经常使用“ON DELETE CASCADE”,但是我从不使用“ON UPDATE CASCADE”,因为我不太确定它在什么情况下会有用。 为了讨论起见,请看一些代码。 CREATE TABLE parent ( id INT NOT NULL AUTO_INCREMENT, PRIMARY KEY (id) ); CREATE TABLE child ( id INT NOT NULL AUTO_INCREMENT, parent_id INT, INDEX par_ind (parent_id), FOREIGN KEY (parent_id) REFERENCES parent(id) ON DELETE CASCADE ); 对于“ON DELETE CASCADE”,如果删除了具有id的父项,则具有parent_id = parent.id子项中的logging将被自动删除。 这应该没问题。 这意味着“ON UPDATE CASCADE”会在更新父代的id时做同样的事情? 如果(1)为真,则意味着如果parent.id不可更新(或将永远不会更新),则不需要使用“ON UPDATE CASCADE”,就像它是AUTO_INCREMENT或始终设置为TIMESTAMP 。 […]

MySQL – 有条件的外键约束

我在我的应用程序中有以下“评论”表: comments ——– id INT foreign_id INT model TEXT comment_text TEXT … 这个表的想法是存储我的应用程序的各个部分的评论 – 它可以存储博客评论意见,即: 1|34|blogpost|lorem ipsum… 用户图片: 2|12|picture|lorem ipsum… 等等。 现在,有没有办法强制这些数据的外键约束? 即在评论表中这样的东西: FOREIGN KEY (`foreign_id`) REFERENCES blogposts (`id`) //but only when model='blogpost'

实体对象不能被IEntityChangeTracker的多个实例引用。 同时在entity framework4.1中添加相关对象到实体

我正在尝试保存员工详细信息,该信息与城市有关。 但每次我尝试保存我的联系人,这是validation我得到exception“ADO.Netentity framework一个实体对象不能被多个IEntityChangeTracker实例引用” 我读过这么多的post,但仍然没有得到确切的想法做什么…我保存button点击代码如下 protected void Button1_Click(object sender, EventArgs e) { EmployeeService es = new EmployeeService(); CityService cs = new CityService(); DateTime dt = new DateTime(2008, 12, 12); Payroll.Entities.Employee e1 = new Payroll.Entities.Employee(); Payroll.Entities.City city1 = cs.SelectCity(Convert.ToInt64(cmbCity.SelectedItem.Value)); e1.Name = "Archana"; e1.Title = "aaaa"; e1.BirthDate = dt; e1.Gender = "F"; e1.HireDate = dt; e1.MaritalStatus = "M"; […]

错误代码:1005.无法创build表'…'(errno:150)

我在网上search了这个问题的解决scheme,并检查了SO问题,但没有解决scheme为我的案件工作。 我想创build一个从表sira_no到metal_kod的外键。 ALTER TABLE sira_no ADD CONSTRAINT METAL_KODU FOREIGN KEY(METAL_KODU) REFERENCES metal_kod(METAL_KODU) ON DELETE SET NULL ON UPDATE SET NULL ; 这个脚本返回: Error Code: 1005. Can't create table 'ebs.#sql-f48_1a3' (errno: 150) 我试着给被引用的表添加索引: CREATE INDEX METAL_KODU_INDEX ON metal_kod (METAL_KODU); 我检查了两个表上的METAL_KODU(字符集和整理)。 但是找不到解决这个问题的办法。 有没有人有任何想法? 提前致谢。 编辑:这是metal_kod表: METAL_KODU varchar(4) NO PRI DURUM bit(1) NO METAL_ISMI varchar(30) NO AYAR_YOGUNLUK smallint(6) […]

如何查看表或列的所有外键?

在MySQL中,如何获得指向特定表的所有外键约束的列表? 一个特定的列? 这与Oracle的问题是一样的,但是对于MySQL来说。