mySQL:1)单列名称别名2)添加虚拟列

时间:2012-02-07 10:33:56

标签: mysql aliasing

两个问题:

1)

有几个表用作其他表的存档 为此,有一个

INSERT INTO data_archive_table (SELECT * FROM data_table)

问题是data_table.id应保留为data_archive_table.old_id 有没有办法编写一个看起来像SELECT *, id AS old_id FROM data_table的查询,而结果列只有old_data列,而不是原来的id列?

使用所有列名是我看到的唯一选项,但我更愿意避免使用它。

2)

我想在插入查询中添加一个名为deleted_time的虚拟列,它将保留当前时间 可以吗?如果是这样 - 怎么样?(教程会很棒)

1 个答案:

答案 0 :(得分:0)

试试这个:

  

1。)您可以使用类似此查询的内容:

INSERT INTO data_archive_table
SELECT id AS old_id  -- be sure that data_archive_table has column oldID
       ,... -- You need to specify the names of the columns
FROM data_table
WHERE id = 'IDHERE' -- If you want to have condition.
  

2。)为此,您可以直接在select语句中添加值

INSERT INTO `tableName`
SELECT colA,
       colB,
       , ...
       , NOW() as deleted_time -- NOW() is a function in MySQL
FROM `sourceTable`
WHERE colA = 'IDHERE' -- If you want to have condition.

NOW() in MySQL