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

Mysql 如何使用SQL将数据插入表中?,mysql,sql,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.setting

在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)

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

因此,我希望看到:

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

请注意,
col2
已从
INSERT
VALUES
中删除,因为您似乎需要一个
默认值。并非所有数据库都支持这种语法。

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

因此,我希望看到:

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

请注意,
col2
已从
INSERT
VALUES
中删除,因为您似乎需要一个
默认值。并非所有数据库都支持这种语法。

您确定元组的所有字段都在那里,如果是这样,则它们的顺序正确如果您没有输入元组的所有字段,则应使用以下形式:
插入应用程序设置(值、配置、位置、日期)值(99,“默认”、“水平”、“2015-09-15 04:01:04”);

顺序相同

这只是一个例子,我不知道你必须为你正在使用的更改字段名


您确信元组的所有字段都在那里,如果是这样,那么如果您没有输入元组的所有字段,那么它们的顺序是正确的。您应该使用以下形式:
插入应用程序设置(值、配置、位置、日期)值(99,“默认”、“水平”、“2015-09-15 04:01:04”)

顺序相同

这只是一个例子,我不知道你必须为你正在使用的更改字段名


正如@GordonLinoff所说,您应该在查询中包含这些列。这样,您也可以跳过输入
电子邮件频率
默认值

至于错误,最有可能的是你目前使用的双引号,而不是单引号

请尝试以下操作:

INSERT INTO App.settings (user_id, layout, updated_at) 
    VALUES (99, 'horizontal', '2015-09-15 04:01:04');

正如@GordonLinoff所说,您应该在查询中包含这些列。这样,您也可以跳过输入
电子邮件频率
默认值

至于错误,最有可能的是你目前使用的双引号,而不是单引号

请尝试以下操作:

INSERT INTO App.settings (user_id, layout, updated_at) 
    VALUES (99, 'horizontal', '2015-09-15 04:01:04');

在标准SQL中,字符串是单引号:
(99,默认为“水平”、“2015-09-15 04:01:04”)
。对象名称是双引号:
“App”“settings”
App.settings
中有哪些列?您能否使用
DESC App.settings
并向我们显示结果?另外,您使用的是什么数据库管理系统?标准SQL字符串中的(MySQL、Oracle、MSSQL、MongoDB等)是单引号:
(99,默认为“水平”、“2015-09-15 04:01:04”)
。对象名称是双引号:
“App”“settings”
App.settings
中有哪些列?您能否使用
DESC App.settings
并向我们显示结果?另外,您使用的是什么数据库管理系统?(MySQL、Oracle、MSSQL、MongoDB等)为什么总是这样?如果这张桌子不可能改变的话,我不会说它是绝对的necessary@TwiN . . . 因为学习SQL的人应该学会如何正确使用SQL。如果您有经验并且知道何时不使用列名,那么您将忽略该建议。只有一种情况我没有列出列名,这有点离群。我总是列出非临时表的列名。我不希望表结构中的更改导致代码中出现意外行为。我使用的语句是:插入App.settings值(99,默认值,“水平”,“2015-09-15 04:01:04”);我得到的错误是[error]:任务1。应为:将指定值插入App.settings表。再试一次。@GordonLinoff啊,在代码中,我绝对同意你的观点。我们应该始终包括列的名称。然而,从他的例子来看,我认为他似乎没有试图在代码中使用它。也许我必须使用ALTER关键字?为什么总是?如果这张桌子不可能改变的话,我不会说它是绝对的necessary@TwiN . . . 因为学习SQL的人应该学会如何正确使用SQL。如果您有经验并且知道何时不使用列名,那么您将忽略该建议。只有一种情况我没有列出列名,这有点离群。我总是列出非临时表的列名。我不希望表结构中的更改导致代码中出现意外行为。我使用的语句是:插入App.settings值(99,默认值,“水平”,“2015-09-15 04:01:04”);我得到的错误是[error]:任务1。应为:将指定值插入App.settings表。再试一次。@GordonLinoff啊,在代码中,我绝对同意你的观点。我们应该始终包括列的名称。但是,从他的例子来看,我认为他似乎没有试图在代码中使用它。也许我必须使用ALTER关键字?