2016-04-24 152 views
2

我试图插入值到我的表,但得到一个没有这样的列错误。我在寻找,看到在大多数情况下,这是因为他们错过了引号,但我似乎拥有它们。任何人都可以将我指向正确的方向吗?在sqlite3没有这样的列错误

CREATE TABLE students (
id INTEGER PRIMARY KEY, 
first_name VARCHAR(255), 
last_name VARCHAR(255), 
grade INT, 
passing BOOLEAN, 
teacher_id INT, 
FOREIGN KEY (teacher_id) REFERENCES teachers(id) 
); 

INSERT INTO students (first_name, last_name, grade, passing, teacher_id) 
VALUES (‘Ted’, ‘Mosby’, 84, true, 2); 

Error: no such column: ‘Ted’

回答

2

使用'1代替true

SQLite does not have a separate Boolean storage class. Instead, Boolean values are stored as integers 0 (false) and 1 (true).

INSERT INTO students (first_name, last_name, grade, passing, teacher_id) 
VALUES ('Ted', 'Mosby', 84, 1, 2); 

SqlFiddleDemo

输出:

╔═════╦═════════════╦════════════╦════════╦══════════╦════════════╗ 
║ id ║ first_name ║ last_name ║ grade ║ passing ║ teacher_id ║ 
╠═════╬═════════════╬════════════╬════════╬══════════╬════════════╣ 
║ 1 ║ Ted   ║ Mosby  ║ 84 ║  1 ║   2 ║ 
╚═════╩═════════════╩════════════╩════════╩══════════╩════════════╝ 
+1

该死的,难怪。我的mac是autocorrecting。非常感谢! –

相关问题