我似乎无法正确使用语法。我想在允许插入另一条记录之前检查一个表的值。
这样的事情:
IF EXISTS (SELECT * FROM rooms WHERE id = 1)
THEN
INSERT INTO other_table (room_id) VALUES (1)
END IF
我只是想确保特定记录存在才能被允许输入另一个表格...为了更进一步,我实际上想确保存在一些事情......
IF EXISTS (SELECT * FROM rooms WHERE id = 1) AND (SELECT * FROM guests WHERE guest_id = 10)
THEN
INSERT INTO other_table (room_id,guest_id) VALUES (1,10)
END IF
我还没有处理交易或存储过程,所以如果我需要先了解所有这些,我会很难过。
答案 0 :(得分:1)
您可以使用INSERT INTO ... SELECT
:
INSERT INTO other_table (room_id)
SELECT 1 FROM rooms WHERE id =1 GROUP BY id
(GROUP BY
只是为了确保子查询返回不超过1行;如果rooms.id
是唯一的,则不需要它。
对于多个表:
INSERT INTO other_table (room_id,guest_id)
SELECT 1,
10
FROM rooms WHERE id = 1 and exists (SELECT 1 FROM guests WHERE guest_id = 10) LIMIT 1;