0

In mySQL if I created two tables and on table contains a foreign key referenced to the other table. I have entered data in the other table and for the defined foreign key in that as well. Is there any way for the foreign key to automatically update in the second table without having to type in the entire data? For example I have a customer table which has 2 fields- customerID and customerName. Another table is say a invoice table which has 3 fields- invoiceID, cost and customerID, where customerID is foreign key. So if I enter data in customer table and invoice table as the number of customers are very large I do not want to keep on entering the customerID in the invoice table. As customerID is a foreign key in the other table, how do I make it automatically reference it from customer table?

4

2 に答える 2

0

請求書データに顧客名があり、顧客データが既に入力されている場合は、次のことができます。

INSERT INTO tbl_invoice (invoiceData, invoiceData2, customerID)
  SELECT 'value1', 'value2', customer.customerID
  FROM tbl_customer customer
  WHERE customer.customerName = 'customer name'

したがって、顧客 ID を直接処理する必要はありません。

MySQL には、これを正確に行うための自動機能はありません。必要に応じてトリガーを使用できます。

于 2013-04-21T08:43:33.213 に答える
0

1 などの定義済みの番号を自動的に追加できますが、これによりすべての請求書が顧客 #1 に割り当てられます。

一方、請求書を追加しながら顧客を自動的に追加できます。そのためには、customerID を制御する必要があります。指定された ID を持つ顧客が存在しない場合は、顧客テーブルに空の名前で新しい顧客を挿入します。その後、それらの顧客の名前を入力する必要がありますが、1 つずつ入力する必要はありません。

ここであなたは誤解を招く考えを持っていると思います。本を読むか、オンラインのチュートリアルを見るか、サンプル プロジェクトのデータベース テーブルを調べることを強くお勧めします。

于 2013-04-21T08:43:45.877 に答える