0

我有一个包含大约 30 个字段的 MySQL 表。我需要使用这些字段的子集创建第二个表,加上 CURDATE() 来跟踪他们的支出历史。我收到语法错误,但也许我的方法一开始就不正确。请复习一下,谢谢!

INSERT INTO history (customer_id, name, amount, date_recorded)
set date_recorded = CURDATE()
SELECT customer_id, name, amount
FROM master;

在上面的例子中,我试图在 MySQL 中做的是从主客户列表中复制 customer_id、name、amount 字段,并包括今天的日期。历史表的记录布局在这里:

+---------------+------------------+------+-----+---------+----------------+
| Field         | Type             | Null | Key | Default | Extra          |
+---------------+------------------+------+-----+---------+----------------+
| id            | int(10) unsigned | NO   | PRI | NULL    | auto_increment |
| customer_id   | int(11)          | NO   | PRI | NULL    |                |
| name          | varchar(255)     | NO   |     | NULL    |                |
| amount        | int(11)          | NO   |     | NULL    |                |
| date_recorded | date             | NO   |     | NULL    |                |
+---------------+------------------+------+-----+---------+----------------+
4

1 回答 1

1

尝试这个::

INSERT INTO history (customer_id, name, amount, date_recorded)

SELECT customer_id, name, amount, CURDATE()
FROM master

另一种方法是::

INSERT INTO history (customer_id, name, amount, date_recorded)

SELECT customer_id, name, amount, DATE(now())
FROM master
于 2012-11-18T17:00:14.707 回答