簡體   English   中英

Oracle Apex:如何告訴Apex使用另一個表的列中的值?

[英]Oracle Apex: How do I tell Apex to use the value from a column of another table?

首先,我們不使用代碼。 我們正在使用Apex GUI來建立數據庫。 我需要一個表的列從另一個表的列獲取值。 如果是我必須創建的觸發器,則可能需要代碼。

例如,我有一個表“ customer”,其中的“ member”列下表示是或否。

我希望每當為表“ order”輸入新的數據行時,也具有“ member”列的表“ order”會自動從表“ customer”的“ member”列中獲取值。

我是否在“約束”下執行此操作,因為當我嘗試創建成員列的外鍵時,它總是給我一個錯誤。

我要在“觸發器”下執行此操作嗎?

請理解,我對代碼不太了解。 當有人說類似

COMMAND table1 s(無論是哪種命令);

我不知道“ s”是什么意思。 而且我敢肯定,還有很多其他我也不十分了解的東西。 我已經介紹過MySQL,但是它顯然與Apex Oracle有一些區別。

謝謝。

觸發器是一種實現方法。 假設order表包含一個customer_id列或標識該客戶的類似內容,則您將創建一個插入前,逐行觸發器,其中包含如下語句:

SELECT customer.member INTO :new.member
FROM customer WHERE customer.customer_id = :new.customer_id

坦白說,如果您想做一些事情,那么您需要閱讀一些書,以學習如何編寫適當的觸發器。

假設您將構建一個Apex應用程序來輸入訂單,另一種方法是讓相關頁面在加載時(可能是隱藏的頁面項中)從customer那里查詢必要的信息,然后將其包含在insert語句中。

同樣,如果您不知道如何執行此操作,則如果打算使用Apex完成任何有用的操作,則需要做一些研究。

這里的外鍵不合適。 外鍵引用的列必須唯一。 由於member只有兩個值,因此許多客戶將具有相同的值,因此它不是唯一字段。

但是,外鍵適用於該字段, order標識特定的客戶。

您需要主從頁面。 Create page -> Form -> Master Detail Form ,然后選擇:

  • 步驟Master Table and ColumnsTable/View name - customerSelect Columns -選擇用戶要編輯的表customer所需的列。
  • 步驟Detail Table and ColumnsTable / View Name - orderSelect Columns -選擇所需的表order列。
  • 步驟Define Primary Key :為兩個表選擇主鍵(或使用選項Managed by ROWID
  • 步驟Primary Key -我建議使用先前創建的序列(轉到“ Object Browser )。

在所有其他步驟中,您可以默認選擇值。 完成此步驟后,您將獲得兩頁(或三頁,具體取決於您在向導中選擇的頁面)。 一頁允許用戶更改表customer數據,第二頁允許按表order更改數據,並且該數據將自動與表customer鏈接。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM