0

我有一个国家,比如说用户表,如果提交的国家与约束不匹配,我想要一个空值来代替。

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 约束,查询实际上会失败。但我希望它写一个空值。我们应该怎么做?
4

1 回答 1

0

回答我自己的问题看起来是这样的:

(但如果您提出更好的答案,我当然会接受)

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

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

于 2012-08-02T16:22:31.913 回答