2016-12-03 3 views
0

Каков правильный синтаксис для вставки данных в таблицу с внешним ключом. Мне нужно вставить информацию в таблицу Purchase Details, но имя столбца PurchaseNo является внешним ключом таблицы Purchases. Это моя база данных:Как вставить данные в таблицу с внешним ключом

Купить Подробнее:

  • Код ссылки (PRIMARY KEY, UNIQUE)
  • PurchaseNo (FOREIGN KEY)
  • ProductID (FOREIGN KEY)
  • Количество

Продовольственные товары:

  • PurchaseNo (PRIMARY KEY, UNIQUE)
  • SupplierID (FOREIGN KEY)
  • DatePurchased
  • DateReceived
  • ReceiptNo
  • Статус

Это моя цель:

My goal is to view the Product & Quantity in the right side when I clicked the add button from the left side (Inserting Supplier, Product, Quantity)

мой синтаксис кода за это:

using (SqlConnection con = new SqlConnection(kb.GetConnection())) 
{ 
con.Open(); 
string query = @"INSERT INTO PurchaseDetails VALUES (@PurchaseNo, @ProductID, @Quantity)" 
} 
+1

Какие СУБД вы используете? – GurV

+0

MySql? idk, если я ответил на ваш вопрос –

+0

Проверьте это, если это поможет: http://stackoverflow.com/questions/5178697/mysql-insert-into-multiple-tables-database-normalization – GurV

ответ

0

Там не будет никакой разницы в синтаксисе с или без внешнего ключа, единственное, что вам нужно обеспечить с внешним ключом является то, что вам нужно сначала вставить данные, где ссылается на внешний ключ.

В вашем случае перед вставкой данных в таблицу закупок вы должны вставить данные в таблицу продуктов и поставщиков.

1

Вы можете сделать что-то вроде этого:

SqlCommand yourCommand = new SqlCommand(@"INSERT INTO [TableName] (SelectColumns) Values " + " SELECT SomeKey, ColumnName FROM TableName WHERE YourCondition)", myConnection) 
Смежные вопросы