如果违反mysql中的约束,则插入null?

时间:2012-08-02 14:37:37

标签: mysql foreign-keys

我有一个国家,让我们说用户表,并且如果提交的国家/地区与约束不匹配,我想要一个null去那里。

create table countries(
    ccode char(2), primary key (ccode)
);

create table users(
    ccode char(2), foreign key (ccode) references countries(ccode)
);

insert into countries values('ru'),('us'),('hk');

现在,如果用户提交了不存在的代码,例如:

insert into users values('xx');
  • 由于fk constaint,查询实际上会失败。但是我想让它写一个null。我们怎么能这样做?

1 个答案:

答案 0 :(得分:0)

回答我自己的问题,看起来就是这样做的方法:

(但如果你建议一个更好的答案,我当然会接受它)

insert into users values((select ccode from countries where ccode='x'));

^这将返回一个代码,如果它不匹配则返回null - 这就是我想要的。