这个问题是非常相似,这一个,但对于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]表)
非常感谢你的帮助!
我正在尝试在表的两列上创建一个外键以指向另一个表的同一列,但我似乎得到一个错误...
这是我做的:
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)
但是,如果我只有一列,则表格已正确创建.
有人能指出我的错误在哪里吗?
谢谢你