我有
下的两个mysql表oilchangehistory
histID int(11) NO PRI auto_increment
oilChangeDate date YES
custID varchar(45) YES
VIN varchar(45) YES
invoiceNo int(11) YES
incentive int(11) YES
promotion int(11) YES
cashPaid int(11) YES
发票
invoiceNo int(11) NO PRI auto_increment
invoiceDate timestamp NO CURRENT_TIMESTAMP
amount int(11) YES
subTotal int(11) YES
tax int(11) YES
others int(11) YES
totalDue int(11) YES
cashReceived int(11) YES
itemQty int(11) YES
salePrice int(11) YES
itemName varchar(45) NO MUL
litre decimal(6,2) NO
VIN varchar(45) NO MUL
custID varchar(45) NO
incentive int(11) YES
promotion int(11) YES
现在我希望当我在数据输入发票表中作为发票表中输入的数据时, oilchangehistory 表填充了当时如何使用程序或触发器请帮助我
答案 0 :(得分:0)
如果要将确切的值从invoice表填充到oilchangehistory表,而不是创建oilchangehistory作为表创建为视图。
CREATE OR REPLACE VIEW oilchangehistory
SELECT CURDATE() AS oilchangedate
,custid
,vin
,invoiceno
,incentive
,promotion
,cashreceived as cashpaid
FROM invoice;
如果您不想创建视图,请使用Trigger填充oilchangehistory表。 存储过程是用户定义的一段代码,用PL / SQL的本地版本编写,它可以返回一个值(使其成为函数),通过显式调用它来调用它。 触发器是在各种事件发生时自动运行的存储过程(例如,更新,插入,删除)。
自动插入,更新或删除后会触发触发器。存储过程是在您调用它时运行的服务器端程序。所以在这种情况下去触发。