SQL триггер, вставьте в оператор - PullRequest
0 голосов
/ 29 сентября 2011

У меня есть две таблицы sql scan_sc и rescan_rsc. Таблица сканирования выглядит следующим образом:

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, поэтому я вижу, что здесь были некоторые проблемы.

Триггер должен это делать, когда идентификатор из таблицы повторного сканирования такой же, как в таблице сканирования.

Надеюсь, вы все поняли мой вопрос.

Заранее спасибо.

1 Ответ

1 голос
/ 29 сентября 2011

Вам действительно нужны столбец ReScan_sc и триггер?

С помощью простого JOIN вы можете найти записи в вашей таблице scan_sc, которые были повторно отсканированы, без использованиястолбец ReScan_sc вообще.
Существует несколько возможностей:

Показать все сканы, с дополнительным столбцом с идентификатором повторного сканирования, если он есть:

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 в его комментарии)

...