create table flight (
fl_flight_no int primary key, 
fl_orig varchar(3) constraint flight_orig_fk references airport(air_code),
);
我刚接触数据库, 我选择用MySQL。 
上面这个例子有什么语法错误? 难道 MySQL 没有constraint 直接在用在一个 table field的功能吗?
在在线等, 知道的帮忙一下, 马上结贴, 谢谢

解决方案 »

  1.   

    到这里看看. 数据库版本? 表类型?
    http://hi.baidu.com/jlhh/blog/item/69f9a011accf3c7eca80c48c.html
      

  2.   

    ... 我刚学数据库, 别的方便还可以。 我感觉这个问题应该是会MySQL的人一眼就知道的。 又要我去看那乱糟糟的文章。 
    问题就是难道
    fl_orig varchar(3) constraint flight_orig_fk references airport(air_code), 在这个语句里, constraint 无法直接跟在 fl_orig 后面吗? 那fl_meal char(1) constraint flight_meal_cc check (fl_meal ='B' or fl_Meal='L' or fl_meal='D' or fl_Meal='S' or fl_meal=''),这句怎么办? constraint 后面是check, 谁有一眼就知道的? 帮忙一下
      

  3.   

    mysql支持多种引擎,有些类型不支持外键约束
    你的mysql版本,表类型你都没有回答真是浮躁的可以
      

  4.   

    1、airport 和flight必须都是INNODB引擎。
    2、fl_orig 和air_code 必须都是varchar(3).
    3、fl_orig 必须是KEY.
    4、foreign key 的名字必须在整个库是唯一的。所以你的表应该是这样:create table flight (
    fl_flight_no int primary key,
    fl_orig varchar(3),
    key idx_fl_orig (fl_orig),
    constraint flight_orig_fk foreign key (fl_orig) references airport(air_code)
    ) engine innodb;