0

我有两个表“成员”和“书”定义为:

create table member(

      mem_id bigint(11) unsigned auto_increment not null primary key,
      firstname varchar(20) not null,
      lastname varchar(20) not null,
      gender varchar(1) not null
);

create table book(

      book_id varchar(15) not null primary key,
      isbn varchar(15) not null,
      book_name varchar(100) not null
);

现在我想创建名为'return_book'的下表:

create table return_book(

      mem_id bigint(11) unsigned not null,
      book_id varchar(15) , 
      date date,    
      primary key(mem_id, book_id),
      foreign key(mem_id) references member(mem_id) 
      ON DELETE CASCADE,
      foreign key(book_id) references book(book_id)
      ON DELETE NO ACTION
      ON UPDATE CASCADE            
);

但我总是收到以下错误:“无法创建表 return_book”请帮助。

4

2 回答 2

0

您有语法错误

create table return_book(
mem_id bigint(11) unsigned not null,
book_id varchar(15) , 
date date,  
  primary key(mem_id, book_id),
  foreign key(mem_id) references member(mem_id) 
  ON DELETE CASCADE,
  foreign key(book_id) references book(book_id)
  ON DELETE NO ACTION
  ON UPDATE CASCADE            
);
于 2012-12-29T14:21:39.247 回答
0

'member' 表中的列名 'mem_id' 有错字:D!此外,我还了解到引用列和引用列必须具有相同的类型。

于 2012-12-29T17:13:29.370 回答