相关疑难解决方法(0)

外键引用SQL Server中的2列主键

这个问题是非常相似,这一个,但对于SQL Server 2005:

我的数据库中有2个表:

--'#' denotes the primary key
[Libraries]
#ID   #Application  Name
 1     MyApp        Title 1
 2     MyApp        Title 2


[Content]
#ID   Application  LibraryID  Content
 10    MyApp       1          xxx
 11    MyApp       1          yyy
Run Code Online (Sandbox Code Playgroud)

(数据库显然要复杂得多,并且有这个双键是有道理的)

每个库都由其唯一ID和应用程序名称标识.我正在尝试确保每个内容都正确引用现有库.

创建约束时(使用向导)为

Primary key table            Foreign key table
[Libraries]                  [Content]
ID                  --->     LibraryID
Application         --->     Application
Run Code Online (Sandbox Code Playgroud)

我有以下错误:

表'Libraries'中的列与现有主键或UNIQUE约束不匹配

你知道发生了什么吗?如果它可以使用SQL Server?(我根本无法修改[Library]表)

非常感谢你的帮助!

sql sql-server-2005 foreign-key-relationship

31
推荐指数
3
解决办法
9万
查看次数

在多列上添加外键

我正在尝试在表的两列上创建一个外键以指向另一个表的同一列,但我似乎得到一个错误...

这是我做的:

CREATE TABLE test2 (
  ID INT NOT NULL AUTO_INCREMENT,  
  col1 INT NOT NULL,
  col2 INT NOT NULL, 
  PRIMARY KEY (ID),
  CONSTRAINT fk FOREIGN KEY (col1, col2)
                REFERENCES test1(ID, ID)
  ON UPDATE CASCADE
  ON DELETE RESTRICT
) ENGINE=InnoDB;
Run Code Online (Sandbox Code Playgroud)

但我明白了

ERROR 1005 (HY000): Can't create table 'DB.test2' (errno: 150)

但是,如果我只有一列,则表格已正确创建.

有人能指出我的错误在哪里吗?

谢谢你

mysql foreign-keys mysql-error-1005

10
推荐指数
1
解决办法
1万
查看次数