我正在尝试在SQLite中创建一个保存日期的表。我查看了他们的网站,发现我必须使用文本来存储它。但是,我收到一个错误消息,原因是我没有正确插入数据值。
CREATE TABLE fitness_data(
user varchar(20) primary key,
day text,
steps int,
minOfExercise int,
calories int
);
INSERT INTO fitness_data('wrkey', '2019-04-15', 5873, 47, 1429);
Error: near "5873": syntax error
我不确定为什么它不能让我插入数据。我意识到错误是在步骤int上出现的,但是我认为它与日期有关,因为我以前从未使用过该日期,并且我的步骤值没有问题。
任何人都知道问题是什么以及如何解决?
答案 0 :(得分:2)
尝试:
INSERT INTO fitness_data (user_key, day, steps, minOfExercise, calories) VALUES ('wrkey', '2019-04-15', 5873, 47, 1429);
答案 1 :(得分:1)
尝试一下:
INSERT INTO fitness_data VALUES ('wrkey', '2019-04-15', 5873, 47, 1429);
尽管首选方法始终是列出要插入的字段:
INSERT INTO fitness_data (user, day, steps, minOfExercise, calories) values ('wrkey', '2019-04-15', 5873, 47, 1429);
答案 2 :(得分:0)
INSERT INTO语句的正确语法为:
INSERT INTO tablename (col1, col2, ...) VALUES (value1, value2, ....)
因此,当您执行此操作时:
INSERT INTO fitness_data('wrkey', '2019-04-15', 5873, 47, 1429)
然后将'wrkey'
,'2019-04-15'
,5873
,47
,1429
视为列名,而不是您要插入的值。
您可以使用VALUES
关键字来解决此问题:
INSERT INTO fitness_data VALUES ('wrkey', '2019-04-15', 5873, 47, 1429)
由于您为所有列设置了值,
但通常,在您的语句中包括要为其设置值的所有列名称始终是一个好习惯:
INSERT INTO fitness_data
(user, day text, steps, minOfExercise, calories)
VALUES
('wrkey', '2019-04-15', 5873, 47, 1429)