SQL触发器,插入到语句中

时间:2011-09-29 06:54:55

标签: mysql sql triggers insert where

我有两个名为scan_screscan_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相同。

希望大家都明白我的问题。

提前致谢。

1 个答案:

答案 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_scid_rsc是主键,PRIMARY KEY (id_sd)是拼写错误,就像marc_s在评论中指出的那样)