2017-06-07 36 views
-1

1つの主キーが別の外部キーを持つ新しい新しいデータをDoctorテーブルに挿入する方法を知りたい。1つの主キーを持つ別の外部キー、クエリを使用する別の外部キーを持つテーブルにデータを挿入する

たとえば、以下のようにpersonテーブルの値を追加しました。Doctorテーブルでどのように処理されたかを教えてください。

create table Doctor(
    DoctorID char(6) Primary Key, 
    MedicalDegrees varchar(20), 
    PersonID int not null REFERENCES Person (PersonID), 
    check(DoctorID like '[a-z][a-z][0-9][0-9][0-9][0-9]')); 

create table Person(
    PersonID int Primary Key, 
    FirstName varchar(15), 
    LastName varchar(15), 
    StreetAddress varchar(25), 
    City varchar(15), 
    State varchar(2), 
    Zip varchar(5), 
    PhoneNumber varchar(10), 
    SSN varchar(9) UNIQUE); 

insert into person values('1', 'John', 'Smith', '2343 sdf', 'Tacoma', 'WA', 98001, 5268964563, 564657415) 

事前

+0

Personテーブルの場合と同じようにデータを挿入すると、使用する外部キーが実際にPersonテーブルに存在することを確認するだけで済みます。 –

+0

私は何度も何度も試みましたが、私は正しい構文を得ていないので、私は尋ねました。とにかくありがとう... – JOe

+0

同じ構文ですが、外部キーを持つプライマリキーに構文を変更しないでください。何度も試してみたら、試してみてください。 –

答えて

0

で多くのおかげで、あなたは医者のテーブルにデータを追加する方法とはどういう意味ですか?
personテーブルにレコードを追加したのと同じように、レコードをDoctorテーブルに追加できます。
DoctorテーブルにはPersonカラムへの参照カラムがあるため、最初にPersonテーブルにレコードを挿入してからDoctorテーブルにPersonIdの値をPersonテーブルに挿入する必要があります。
参照テーブルにデータを挿入する際に直面しているクエリと問題を追加してください。

0

プライマリキーと外部キーの両方を持つテーブルにデータを挿入するために別のクエリが必要だとは思わないのですが、クエリはテーブルの設計に従って変更されません。

質問に投稿した質問が既にありますので、それを使用してDoctorテーブルにデータを挿入します。

あなたのクエリは次のとおりです。

insert into person values('1', 'John', 'Smith', '2343 sdf', 'Tacoma', 'WA', 98001, 5268964563, 564657415) 

このクエリによると、今はid = 1であなたのPersonテーブル内のデータを持っています。そのためには、今、あなたがこのようDoctorテーブルにデータを挿入することができます。

Insert INTO Doctor Values('1','Brain Damage','1') 

我々は、外部キーで使用1は、私たちがPersonテーブルに挿入一つです。
無効なPersonIdテーブルにDoctorテーブルにデータを挿入することはできません。これはForeign keyであるため、Personテーブルには存在しません。

+0

ありがとう、私は主キーデータが何も挿入されずに(どのようにauto_incrementの場合)処理できるか知りたいです。 – JOe

+0

auto_incrementの場合、挿入する必要はなく、それ自体で挿入されます。あなたはそれを普通に選択することも、それを基準に検索することもできます –

関連する問題