I have added a new column to my table quote_entry (which already has several columns) with this statement:
ALTER TABLE quote_entry
ADD overtime_id INTEGER;
Now, I'm trying to insert data into the column like this:
INSERT INTO quote_entry (overtime_id)
select 1
FROM quote_entry
WHERE overtime=0;
But this is giving me an error message:
Error: Field 'quote_id' doesn't have a default value
SQLState: HY000
ErrorCode: 1364
I don't understand, why am I getting this error when I'm just trying to modify data in the overtime_id column?
An
INSERTstatement is used to add new rows to a table. It looks like what you want to do is add values to the column you just created, in the existing rows. You would do this with anUPDATEstatement instead of anINSERTstatement:The simple version, without unnecessary options, would look like this:
In this case,
exprwill be a constant expression –1– if you want to leave the columnNULLin all rows where your condition doesn't match.