I have the following table:
CREATE TABLE tab (
id SERIAL PRIMARY KEY,
code TEXT NOT NULL,
data TEXT
)
In some cases, I'd like to insert a new row ensuring that the code column is generated by the id column. In other cases the code
is provided by the user.
For example:
INSERT INTO tab(code, data) VALUES ('code: ' || id::TEXT, 'my data');
The expected result is something like:
id | code | data |
---|---|---|
1 | code: 1 | abc |
2 | code: 2 | xyz |
INSERT INTO tab(code, data) VALUES ('user.provided.code', 'my data');
The expected result is something like:
id | code | data |
---|---|---|
1 | code: 1 | abc |
2 | code: 2 | xyz |
3 | user.provided.code | xyz |
Is it possibile in one statement?