如何使用SQL将数据插入表中?

时间:2018-05-27 20:16:39

标签: mysql sql

在App.settings表中插入以下值:

(99, DEFAULT, "horizontal", "2015-09-15 04:01:04")

我有一个名为App的数据库,带有设置表。我试图插入表格,但我似乎无法做到正确。

我的陈述:

INSERT INTO App.settings
    VALUES(99, DEFAULT, "horizontal", "2015-09-15 04:01:04");

我做得对吗?它说我的答案是错的。

mysql> DESC App.settings;
+-----------------+---------------------+------+-----+---------+-------+
| Field           | Type                | Null | Key | Default | Extra |
+-----------------+---------------------+------+-----+---------+-------+
| user_id         | int(7)              | NO   |     | NULL    |       |
| email_frequency | tinyint(2) unsigned | YES  |     | NULL    |       |
| layout          | varchar(70)         | YES  |     | NULL    |       |
| updated_at      | datetime            | YES  |     | NULL    |       |
+-----------------+---------------------+------+-----+---------+-------+
4 rows in set (0.01 sec)

3 个答案:

答案 0 :(得分:2)

使用insert时,始终列出表格中的列。其次,默认字符串分隔符是SQL中的单引号,而不是双引号。

所以我希望看到:

INSERT INTO App.settings (col1, col3, col4)  -- your real column names here
    VALUES (99, 'horizontal', '2015-09-15 04:01:04');

请注意col2已从INSERTVALUES中移除,因为您似乎需要DEFAULT值。并非所有数据库都支持该语法。

答案 1 :(得分:0)

您确定元组的所有字段都在那里,如果是,如果您没有输入元组的所有字段,则它们的顺序正确您应使用以下格式:INSERT INTO App.settings(value, config, position, date ) VALUES(99, "DEFAULT", "horizontal", "2015-09-15 04:01:04");

以相同的顺序

  

这只是一个例子,我不知道您正在使用

更改字段名称

答案 2 :(得分:0)

就像@GordonLinoff所说,你应该在查询中包含这些列。这样,您也可以跳过输入DEFAULT的{​​{1}}值。

至于错误,它很可能是您目前使用的双引号而不是单引号。

尝试以下方法:

email_frequency