2012-08-02 62 views
0

我有一個國家,讓我們說用戶表,並且如果提交的國家與約束不匹配,我希望null去那裏。如果在mysql中違反約束條件,則插入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。但我希望它寫一個空值。我們應該怎麼做?

回答

0

回答我的問題看起來這是做它的方式:

(但如果你提出一個更好的答案,我會接受它當然)

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

^這將返回一個代碼,如果不匹配則返回null - 這是我想要的。