在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)
答案 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
已从INSERT
和VALUES
中移除,因为您似乎需要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