Reputation: 99
I'm trying trying to insert values into my table, but am getting a no such column error. I was searching and saw that in most cases it was because they were missing quotation marks, but I seem to have them. Can anyone point me in the right direction?
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’
Upvotes: 3
Views: 11414
Reputation: 175616
Use '
not ’
and 1
instead of 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);
In case you want to use variables use same quotes:
INSERT INTO students (first_name, last_name, grade, passing, teacher_id)
VALUES ('$firstName', '$lastName', 84, 1, 2);
Output:
╔═════╦═════════════╦════════════╦════════╦══════════╦════════════╗
║ id ║ first_name ║ last_name ║ grade ║ passing ║ teacher_id ║
╠═════╬═════════════╬════════════╬════════╬══════════╬════════════╣
║ 1 ║ Ted ║ Mosby ║ 84 ║ 1 ║ 2 ║
╚═════╩═════════════╩════════════╩════════╩══════════╩════════════╝
Upvotes: 11