1

我正在尝试在现有表中创建一行,该表由当前时间戳和其他表中的一些其他数据组成。

实现它的正确语法是什么?下面是我想要实现的伪代码。

INSERT INTO logTable
    VALUES( currentTimeStamp, select data1, data2, data3 FROM datatable WHERE data1 = 123);
4

2 回答 2

2

你不能混合insert . . . valuesinsert . . . select。只需使用:

INSERT INTO logTable
    select currentTimeStamp, data1, data2, data3
    FROM datatable
    WHERE data1 = 123;

或者,更好的是,将列设置为具有当前时间戳的默认值,以便自动设置。

于 2013-09-08T13:36:01.910 回答
2
INSERT INTO logTable (column1, column2, column3,column4)
  select CURRENT_TIMESTAMP,data1, data2, data3 FROM datatable WHERE data1 = 123

您可以使用其他东西代替 CURRENT_TIMESTAMP,但要确保列类型匹配。

于 2013-09-08T13:37:02.283 回答