MySQL - 如何在向表中插入行时设置为NOW()和NULL?

时间:2017-11-14 16:13:42

标签: mysql

INSERT INTO rental (rental_date, last_update, return_date)
    SET rental_date, last_update = NOW()
    AND return_date = NULL.

我正在尝试将rental_date,last_update和return_date插入到表租用中,同时还将其时间戳设置为NOW()和NULL。

4 个答案:

答案 0 :(得分:2)

语法应该更像这样。

INSERT INTO rental (rental_date, last_update, return_date)
SET
    rental_date = NOW()
  , last_update = NOW()
  , return_date = NULL   

虽然MySQL支持这种INSERT INTO ... SET语法,但最好像这样使用ANSI SQL标准INSERT INTO ... VALUES

INSERT INTO rental
  (rental_date, last_update, return_date) 
VALUES
  (NOW(), NOW(), NULL)

答案 1 :(得分:1)

您混合了两种不同风格的INSERT

使用语法

INSERT INTO table (column1, column2) VALUES (value1, value2)

或使用

INSERT INTO table SET column1 = value1, column2 = value2

但不要混合两者。

您的值NOW()NULL基本上是正确的,因此它只是您插入的方式。

答案 2 :(得分:0)

您可以参考此链接中的答案https://stackoverflow.com/a/4852095/1712016

您可以使用null值更新rental_date和last_update字段,或者您可以这样查询。

INSERT INTO rental (rental_date, last_update, return_date)
VALUES(NOW(),NOW(),NULL)

or

INSERT INTO rental (rental_date, last_update, return_date)
VALUES(NULL,NULL,NULL)

答案 3 :(得分:0)

你必须现在SELECT(),你不能使用values子句:

INSERT INTO rental
  (rental_date, last_update, return_date) 
SELECT NOW(), NOW(), NULL;