0

私には国があり、ユーザーテーブルとしましょう。送信された国が制約に一致しない場合は、代わりに 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を書きたいです。どうすればこれを行うことができますか?
4

1 に答える 1

0

私自身の質問に答えると、これがそれを行う方法のようです:

(しかし、より良い答えを提案していただければ、もちろん受け入れます)

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

^これはコードを返し、一致しなかった場合はnullを返します-これが私が望むものです.

于 2012-08-02T16:22:31.913 に答える