1

我正在使用 MySQL

我创建的数据库是这样的:

Create table Author ( Id int , Name nvarchar(max) );

Create table Image ( Id int ,ImagePath nvarchar(max) );

Create table Blog ( Id int ,Name nvarchar(max) ,AuthorId int );

Create table BlogImages ( Id int ,BlogId int ,ImageId int );

现在,当我尝试以下部分时,我遇到了错误

ALTER TABLE Blog ADD FOREIGN KEY (AuthorId) REFERENCES Author(Id)

ALTER TABLE BlogImages ADD FOREIGN KEY (BlogId) REFERENCES Blog(Id)

ALTER TABLE BlogImages ADD FOREIGN KEY (ImageId) REFERENCES Image(Id)

请指导我需要在我的表中添加外键

4

3 回答 3

1

您必须定义primary keys

Create table Author 
 ( 
    Id int , 
    Name nvarchar(max), 
    PRIMARY KEY (id) 
 );

Create table Image
  ( 
    Id int ,
    ImagePath nvarchar(max), 
    PRIMARY KEY (id) 
  )

Create table Blog 
  ( 
    Id int ,
    Name nvarchar(max) ,
    AuthorId int, 
    PRIMARY KEY (id) 
   );

 Create table BlogImages 
  ( 
     Id int ,
     BlogId int ,
     ImageId int 
     PRIMARY KEY (id) 
  );

或者这样:

ALTER TABLE Author ADD PRIMARY KEY  Author(Id);
ALTER TABLE Image ADD PRIMARY KEY  Image(Id);
ALTER TABLE Blog ADD PRIMARY KEY  Blog(Id);
ALTER TABLE BlogImages ADD PRIMARY KEY  BlogImages(Id);

Sql 小提琴演示

你也可以创建约束主键,这是我喜欢的方式

ALTER TABLE Author ADD CONSTRAINT pk_AuthorID PRIMARY KEY (ID); 
ALTER TABLE Image ADD CONSTRAINT pk_ImageID PRIMARY KEY (ID) ;
ALTER TABLE Blog ADD CONSTRAINT pk_BlogID PRIMARY KEY (ID); 
ALTER TABLE BlogImages ADD CONSTRAINT pk_BlogImagesID PRIMARY KEY (ID); 
于 2013-07-31T09:02:17.180 回答
0

您可以在要在查询中使用的父表上的列上添加主键或唯一键约束。

于 2013-07-31T09:45:57.703 回答
0

您可以添加查询来创建表

CREATE TABLE author ( Id int , Name varchar(255) );

当您想要更改作者表时,您可以编写以下查询

ALTER TABLE author ADD test varchar(255)

当您想将主键添加到 id 时,您可以在下面查询

ALTER TABLE author ADD Primary key author(Id)
于 2013-07-31T09:39:40.767 回答