回 帖 发 新 帖 刷新版面

主题:[原创]关于外键的问题

create table bid
(
 bid_id        varchar(10),
 bid_date      Datetime,    
 bid_enddate   Datetime,  
 bid_number    int,
 bid_goods_id  varchar(10),
 bid_user_id   varchar(10),
 primary key (bid_id),
 check (bid_number>=0)
 )
create table goods_1
(
  goods_id          varchar(10), 
  goods_type_id     varchar(10),
  goods_name        varchar(10), 
  goods_type_name   varchar(10),
  goods_price       money,    
  goods_number      int,     
  factory_id        varchar(10), 
  primary  key (goods_id),
  foreign key  (goods_id) references bid (bid_goods_id)
 )
服务器: 消息 1776,级别 16,状态 1,行 1
在被引用表 'bid' 中没有与外键 'FK__goods_1__goods_i__7C4F7684' 的引用列的列表匹配的主键或候选键。
服务器: 消息 1750,级别 16,状态 1,行 1
未能创建约束。请参阅前面的错误信息。
这是为什么报告错误呢!
该怎么改呢!


回复列表 (共7个回复)

沙发

FOREIGN KEY 约束只能引用被引用表中为 PRIMARY KEY 或 UNIQUE 约束的列

板凳


那怎么改呢!
举个例子把!

3 楼


我现在 想把 bid_goods_id 设置为外键
该怎么改?

4 楼



我现在 想把 bid_goods_id 设置为外键
该怎么改?
使用unique

5 楼

我现在 想把 bid_goods_id 设置为外键
该怎么改?
使用unique
====

6 楼

先把2张表建好
alter table bid
   add constraint UQ_bid_goods_id primary key(bid_goods_id)
go
alter table goods_1
   add constraint FK_bid_goods_id_goods_id foreign key(goods_id) references bid (bid_goods_id)

7 楼

create table bid
(
 bid_id        varchar(10),
 bid_date      Datetime,    
 bid_enddate   Datetime,  
 bid_number    int,
 bid_goods_id  varchar(10),
 bid_user_id   varchar(10),
 primary key (bid_goods_id),
 check (bid_number>=0)
 )
create table goods_1
(
  goods_id          varchar(10), 
  bid_goods_id      varchar(10),
  goods_type_id     varchar(10),
  goods_name        varchar(10), 
  goods_type_name   varchar(10),
  goods_price       money,    
  goods_number      int,     
  factory_id        varchar(10), 
  primary  key (goods_id),
  foreign key  (bid_goods_id) references bid (bid_goods_id)
 )



我来回复

您尚未登录,请登录后再回复。点此登录或注册