Asosiasi dalam database multinilai secara teknis dianggap sebagai tabel yang berbeda ketika berinteraksi dengan SQL. Misalnya Anda memiliki file Faktur bernama INV, dengan DICT yang terlihat seperti ini.
DICT INV 08:16:43 08-01-16 Page 1
Type &
Field......... Field. Field........ Conversion.. Column......... Output Depth &
Name.......... Number Definition... Code........ Heading........ Format Assoc..
@ID D 0 INV 10L S
CustNum D 1 5R S
PartNum D 2 8R M LineI
tem
Quantity D 3 5R M LineI
tem
4 records listed.
>
Anda tidak akan dapat menggunakan perintah yang Anda coba perbarui PartNumber karena Anda tidak menentukan @ID apa yang ingin Anda kaitkan dengan PartNumber tersebut. Misalnya, Anda tidak akan mengatakan...
UPDATE INV SET PartNumber = 123456;
..karena tidak masuk akal dan akan menggagalkan batasan kunci asing implisit.
Selain itu UPDATE mungkin bukan perintah yang ingin Anda gunakan di sini, karena jika Anda memiliki faktur dengan @ID 123 dan ingin menambahkan PartNumber dan Quantity ke dalamnya, Anda ingin melakukan hal seperti ini.
INSERT INTO INV (@ID, PartNum, Quantity) VALUES (123, 123456, 2);
Dari sini Anda mungkin berharap dapat memperbarui Kuantitas INV 123, PartNum 123456 dengan mengeluarkan perintah...
UPDATE INV SET Quantity = 7 WHERE @ID = 123 WHEN PartNum = 123456;
Tetapi jika Anda mencobanya, Universe akan mengeluh bahwa tidak ada Asosiasi yang disebut LineItem.
Sejauh UPDATES berjalan, Anda harus mengatur file DICT Anda dengan sangat baik agar dapat berfungsi seperti yang diharapkan. Saya akan merekomendasikan Anda membaca panduan Referensi Universe SQL (Pengguna, Referensi dan DBA). Anda dapat menemukannya Di sini. Singkatnya, Anda memerlukan catatan PH di DICT Anda untuk setiap Asosiasi MV dan Anda mungkin ingin memahami apakah asosiasi Anda STABIL, TIDAK STABIL (Default) atau memiliki KUNCI. Tapi itu agak mendalam untuk latihan ini.
Saya menambahkan data PH ke DICT saya untuk Association LineItem.
DICT INV 08:38:16 08-01-16 Page 1
Type &
Field......... Field. Field........ Conversion.. Column......... Output Depth &
Name.......... Number Definition... Code........ Heading........ Format Assoc..
@ID D 0 INV 10R S
CustNum D 1 5R S
PartNum D 2 8R M LineI
tem
Quantity D 3 5R M LineI
tem
LineItem PH PartNum
Quantity
5 records listed.
Dan sekarang ini memungkinkan saya memperbarui kuantitas seperti yang diharapkan.
>UPDATE INV SET Quantity = 7 WHERE @ID = 123 WHEN PartNum = 123456;
UniVerse/SQL: 1 record updated.
>SELECT @ID, PartNum, Quantity FROM INV WHERE @ID = 123;
INV....... PartNum. Quantity
123 123456 7
1 records listed.
>
Semoga membantu.
person
Van Amburg
schedule
01.08.2016