一个booking
有很多appointments
。
我正在进行数据库迁移,以为所有现有约会创建未预订的预订。到目前为止,我已经知道了:
INSERT INTO bookings (status)
SELECT (status)
FROM appointments
WHERE appointments.booking_id IS NULL
但是我对如何使用新创建的预订更新appointments.booking_id
感到困惑。
我不希望对每个约会都进行新的查询,因为现有约会很多,而性能是一个因素。 (通常我依靠ORM,因此是基本的SQL问题)
使用Postgres
答案 0 :(得分:0)
创建一个触发器,该触发器将在预订表中插入值之后将值插入到表中。
CREATE TRIGGER trigger_name
ON table_name
FOR INSERT
AS
BEGIN
SET nocount ON
IF EXISTS (SELECT ( status )
FROM appointments
WHERE appointments.booking_id IS NULL)
BEGIN
INSERT INTO table_name
(column_name)
SELECT 'xxx' -- Replace this value with what you wanna insert
FROM appointments
WHERE appointments.booking_id IS NULL
END
END