Mysql 基于此模式插入数据的正确结构是什么?

Mysql 基于此模式插入数据的正确结构是什么?,mysql,symfony,Mysql,Symfony,我有一个如下所示的表架构: mysql> desc category; +-------------+--------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +-------------+--------------+------+-----+---------+----------------

我有一个如下所示的表架构:

mysql> desc category;
+-------------+--------------+------+-----+---------+----------------+
| Field       | Type         | Null | Key | Default | Extra          |
+-------------+--------------+------+-----+---------+----------------+
| id          | int(11)      | NO   | PRI | NULL    | auto_increment |
| name        | varchar(255) | NO   |     | NULL    |                |
| create_date | datetime     | NO   |     | NULL    |                |
+-------------+--------------+------+-----+---------+----------------+
3 rows in set (0.01 sec)
我已尝试插入数据,但仍出现以下错误:

mysql> INSERT INTO category (id, name, create_date) VALUES (NULL, Family Events, 2016-25-12 00:00:00), (NULL, Work Events, 2016-25-12 00:00:00);
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'Events, 2016-25-12 00:00:00), (NULL, Work Events, 2016-25-12 00:00:00)' at line 1
ERROR 1292 (22007): Incorrect datetime value: 'NOW()' for column 'create_date' at row 1
我尝试过其他几种方法,但都没有找到好的文档

我试过这个:

mysql> INSERT INTO category(id, name, create_date) VALUES(NULL, 'Family Events', 'NOW()');
得到了这个错误:

mysql> INSERT INTO category (id, name, create_date) VALUES (NULL, Family Events, 2016-25-12 00:00:00), (NULL, Work Events, 2016-25-12 00:00:00);
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'Events, 2016-25-12 00:00:00), (NULL, Work Events, 2016-25-12 00:00:00)' at line 1
ERROR 1292 (22007): Incorrect datetime value: 'NOW()' for column 'create_date' at row 1
作为补充,我正在添加它。您遵循的过程的问题是,您应该用
”将字符串值包围起来

-- If the column is a `DATETIME`, then use:
VALUES (NULL, 'Family Events', NOW()),
//------------^-------------^
-- If the column is a `TIMESTAMP`, then use:
VALUES (NULL, 'Family Events', CURRENT_TIMESTAMP),
//------------^-------------^
另外,我使用
CURRENT\u TIMESTAMP
插入时间戳,或者使用
NOW()

其他人指出的另一件事是,您不需要在
INSERT
中添加额外的
id
,因为它基于
PRIMARY KEY
自动执行,并且因为它需要
NULL
值,所以您可以完全删除它

您的最终SQL应该如下所示:

INSERT INTO category(name, create_date) VALUES('Family Events', CURRENT_TIMESTAMP);

带有当前时间戳和引号的答案就是解决方案。@Daniel谢谢。。。我已经添加了这两个变体…@Daniel请检查我是否已经解释了当<代码>:)