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?