执行以下查询后:
create table sel_pesan(
pesan_id varchar(7) not null default pesan(tanggal_pesan),
cust_id varchar(5),
cp_nama varchar(50),
cp_tlp varchar (20),
tanggal_pesan date,
tanggal_acara date,
nama_acara varchar(40),
sesi varchar(10),
tempat varchar(20),
jumlah_orang integer,
petugas varchar(50),
top date,
jam_saji time without time zone,
status_pembayaran boolean default false
);
我收到以下错误:
错误:无法在默认表达式中使用列引用
如何解决这个问题?
答案 0 :(得分:0)
您可以尝试创建一个函数和一个触发器,将pesan_id
的默认值赋值为tanggal_pesan
。
注意:我不知道pesan()
是否是自定义函数。以下代码将tanggal_pesan
值转换为字符串。
此外,您必须使用有效的字符串默认值更改pesan(tanggal_pesan)
,例如:空字符串。
CREATE OR REPLACE FUNCTION sel_pesan_insert() RETURNS trigger AS
BEGIN
NEW.pesan_id := to_char(NEW.tanggal_pesan, 'YYYY-MM-DD');
RETURN NEW;
END;
LANGUAGE plpgsql;
CREATE TRIGGER sel_pesan_insert_tgr BEFORE INSERT OR UPDATE ON sel_pesan FOR EACH ROW EXECUTE PROCEDURE sel_pesan_insert();