首先,我们不使用代码。我们正在使用Apex GUI来设置数据库。我需要一个表的列来从另一个表的列中获取值。如果它是我必须创建的触发器,那么它可能需要代码。
例如,我有一张桌子"客户"其中有"成员"列a是或否。
我想要桌子"命令"还有一个"成员"列自动获取表格中的值""""成员"每当为表格#34;订单输入新的数据行时,列。"
我是否在"约束下做到了,"因为当我尝试创建成员列的外键时,它会一直给我一个错误。
我是否在"触发器下执行此操作?"
请理解,我不太了解代码。当有人说出像
这样的话COMMAND table1 ( 无论什么命令 );
我不知道" s"是为了。而且我很确定还有很多其他我不太了解的东西。我已经介绍过MySQL,但它显然与Apex Oracle存在一些差异。
谢谢。
答案 0 :(得分:0)
触发器是一种方法。假设order
表包含一个customer_id
列或类似的标识客户的列,您将创建一个前插入,每行触发器,其中包含如下语句:
SELECT customer.member INTO :new.member
FROM customer WHERE customer.customer_id = :new.customer_id
坦率地说,如果这是你想做的事情,你需要做一些阅读来学习如何编写正确的触发器。
假设您将构建一个Apex应用程序来输入订单,另一种方法是让相关页面在加载时({1}}加载(可能是隐藏的页面项目)时查询必要的信息,然后将它们包含在插入声明。
同样,如果您不知道如何做到这一点,如果您打算使用Apex来完成任何有用的事情,您需要做一些研究。
这里的外键不合适。外键引用的列必须是唯一的;由于customer
只有两个值,因此许多客户将拥有相同的值,因此它不是唯一的字段。
然而,外键适用于member
中标识特定客户的字段。
答案 1 :(得分:0)
您需要Master-Detail页面。按Create page
- > Form
- > Master Detail Form
,然后选择:
Master Table and Columns
:Table/View name
- customer
,Select Columns
- 选择用户将要修改的表格customer
的所需列。Detail Table and Columns
:Table / View Name
- order
,Select Columns
- 选择表order
所需的列。Define Primary Key
:为两个表选择主键(或使用选项Managed by ROWID
)Primary Key
- 我建议使用以前创建的序列(转到Object Browser
)。在所有其他步骤中,您可以默认选择值。完成此步骤后,您将有两个页面(或三个页面,具体取决于您在向导中的选择)。一个页面允许用户更改表customer
中的数据,第二个 - 更改表order
中的数据,此数据将自动与表customer
链接。