我有两个名为scan_sc
和rescan_rsc
的sql表。扫描表如下所示:
CREATE TABLE scan_sc
(
id_sc int(4),
Type_sc varchar(255),
ReScan_sc varchar(255),
PRIMARY KEY (id_sc)
)
扫描文档时,我在扫描表中插入一行。如果扫描结果很差,我必须重新扫描,因此我有一个重新扫描表。
CREATE TABLE rescan_rsc
(
id_rsc int(4),
Scan_rsc varchar(255),
PRIMARY KEY (id_rsc)
)
问题是,我希望在ReScannet_sc
表中设置一个触发器,用"x"
填充scan_sc
列,这样我就可以看到有一些问题在这里。
触发器必须执行此操作,其中重新扫描表中的id与扫描表中的ID相同。
希望大家都明白我的问题。
提前致谢。
答案 0 :(得分:1)
您真的需要ReScan_sc
列和触发器吗?
使用简单的JOIN
,您可以找到scan_sc
表中已重新扫描的记录,而根本不使用ReScan_sc
列。
有几种可能性:
显示所有扫描,其他列包含重新扫描ID(如果有):
SELECT scan_sc.*, rescan_sc.id_rsc
FROM scan_sc
LEFT JOIN rescan_sc ON scan_sc.id_sc = rescan_sc.id_rsc
仅显示已重新扫描的扫描件:
SELECT scan_sc.*
FROM scan_sc
INNER JOIN rescan_sc ON scan_sc.id_sc = rescan_sc.id_rsc
(我认为id_sc
和id_rsc
是主键,PRIMARY KEY (id_sd)
是拼写错误,就像marc_s在评论中指出的那样)