从另一个表中动态填充MYSQL表

时间:2014-04-20 18:29:59

标签: mysql sql

我有

下的两个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 表填充了当时如何使用程序或触发器请帮助我

1 个答案:

答案 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的本地版本编写,它可以返回一个值(使其成为函数),通过显式调用它来调用它。 触发器是在各种事件发生时自动运行的存储过程(例如,更新,插入,删除)。

自动插入,更新或删除后会触发触发器。存储过程是在您调用它时运行的服务器端程序。所以在这种情况下去触发。