代码之家  ›  专栏  ›  技术社区  ›  SCdF

mysql中INSERT语句上的计算列

  •  2
  • SCdF  · 技术社区  · 16 年前

    假设我想要一个记录日期和其他表中列数的表(或者任何类型的数学/字符串concat等)。

    CREATE TABLE `log` (
    `id` INTEGER NOT NULL AUTO_INCREMENT ,
    `date` DATETIME NOT NULL ,
    `count` INTEGER NOT NULL ,
    PRIMARY KEY (`id`)
    );
    

    e、 g.做一些类似于:

    INSERT INTO log (date='foo');
    

    3 回复  |  直到 16 年前
        1
  •  6
  •   Joe Mahoney    16 年前

    触发器是通过插入、更新或删除更改表时注释数据的最佳工具。

    要使用当前日期自动设置日志中新行的日期列,您需要创建一个如下所示的触发器:

    create trigger log_date before insert on log 
    for each row begin
       set new.date = current_date()
    end;
    
        2
  •  0
  •   Thomas Watnedal    16 年前

    INSERT ... SELECT 陈述

    INSERT INTO log (date, count)
        SELECT DATE() as date, count(id) as count
        from foo;
    

    它应该在日志表中插入一个新行,包含今天的日期和foo表中的行数。(假设foo表有一个id列..使用主键或另一个索引列)

        3
  •  -1
  •   Federico Razzoli    11 年前