Tôi đang cố gắng tạo trường tự động (như SERIAL) bằng trình kích hoạt và chuỗi. Tôi biết rằng chỉ có thể sử dụng một chuỗi hoặc loại SERIAL trên sân, nhưng tôi phải giải quyết này sử dụng cả hai phương pháp (trigger và secuences)Tạo trường tự động với trình kích hoạt và trình tự trong Postgres
CREATE SEQUENCE AlimentosSequencia;
CREATE OR REPLACE FUNCTION AlimentoFuncion()
RETURNS "trigger" AS
$BODY$
BEGIN
New.id:=nextval('AlimentosSequencia');
Return NEW;
END;
$BODY$
LANGUAGE 'plpgsql' VOLATILE;
CREATE TRIGGER AlimentosTrigger
BEFORE INSERT
ON alimento
FOR EACH ROW
EXECUTE PROCEDURE AlimentoFuncion();
tôi cố gắng kết hợp này nhưng doesnt làm việc, các alimento bảng có hai lĩnh vực chỉ, số nguyên id (autoincrement với kích hoạt và trình tự) và tên varchar.
Bất kỳ đề xuất nào?
Cảm ơn
chỉ cần giải thích thêm về "nó không hoạt động". –
Tại sao bạn không muốn sử dụng loại SERIAL đơn giản? –
Bạn chỉ có thể gọi 'nextval()' trên chuỗi liên kết của cột 'nối tiếp' cho các mục đích khác. Không cần phải làm phức tạp những thứ với một kích hoạt. Bên cạnh đó, không có thông báo lỗi, câu hỏi của bạn chỉ là tiếng ồn. Bao gồm nó nguyên văn, xin vui lòng. –