diego <diego.bonanno@:-)nadteam.net> wrote:
Quote:
I'd like to set an empty string (not null) in a field bytea as default.
I've tried this:
"txt1" BYTEA DEFAULT ''::bytea
but when i insert a new record the value is always null.Why? |
Works fine here:
CREATE TABLE a(
id integer NOT NULL PRIMARY KEY,
val bytea DEFAULT ''::bytea);
INSERT INTO a(id) VALUES(1);
SELECT CASE WHEN val IS NULL
THEN 'val is NULL!'
ELSE 'val is not NULL, length is ' || length(val)
END
FROM a WHERE id=1;
case
------------------------------
val is not NULL, length is 0
(1 row)
Could it be that you explicitly enter a NULL value? Then the DEFAULT
would not be effective:
INSERT INTO a VALUES (2, NULL);
SELECT CASE WHEN val IS NULL
THEN 'val is NULL!'
ELSE 'val is not NULL, length is ' || length(val)
END
FROM a WHERE id=2;
case
--------------
val is NULL!
(1 row)
Yours,
Laurenz Albe