Mysql

Mysql觸發器插入行另一個表使用條碼

  • February 12, 2022

我有 3 張桌子:

1) CREATE TABLE `UrunPaketDetay`(
   `UrunPaketDetay` int NOT NULL AUTO_INCREMENT, 
   `UrunPaketNo` int NULL, 
   `Tarih` date NULL, 
   `Barkod` varchar(14) NOT NULL, 
   `Urun` varchar(50) NULL, 
   `SunumSekli` varchar(50) NULL, 
   `IslemeSekli` varchar(50) NULL, 
   `PaketlemeSekli` varchar(50) NULL, 
   `Kalibre` varchar(50) NULL, 
   `Kilo` double NULL, 
   `GlazeOran` varchar(50) NULL, 
   `Uretici` varchar(190) NULL, 
   `PaletKod` varchar(50) NULL, 
   PRIMARY KEY (`UrunPaketDetay`)
)CHARACTER SET utf8;

2) CREATE TABLE `CkisEks`(
   `CikId` int NOT NULL AUTO_INCREMENT, 
   `Tarih` date NULL, 
   `Musteri` varchar(190) NULL, 
   `TeslimatYer` varchar(50) NULL, 
   `CikisSaati` time NULL, 
   `AracPlakasi` varchar(18) NULL, 
   `AracTel` varchar(16) NULL, 
   `KonteynirNo` varchar(50) NULL, 
   `PaletKod` varchar(12) NULL, 
   `Kilo` double NULL, 
   PRIMARY KEY (`CikId`)
)CHARACTER SET utf8;

3) CREATE TABLE `Ckis_Detay`(
   `CD_Id` int NOT NULL AUTO_INCREMENT, 
   `CikId` int NULL, 
   `Barkod` varchar(50) NULL, 
   `Urun` varchar(50) NULL, 
   `Kalibre` varchar(50) NULL, 
   `Kilo` double NULL, 
   `Uretici` varchar(50) NULL, 
   `Musteri` varchar(190) NULL, 
   `PaletKod` varchar(50) NULL, 
   `Tarih` date NULL, 
   PRIMARY KEY (`CD_Id`)
)CHARACTER SET utf8;

我的問題:

我填滿了我的第一張桌子。在第二張桌子上之後,我打電話給 PaletKod 行。PaletKod 行從第一個表自動填充第二個表的 Kilo Row。

但是當我將 PaletKod 填充到我的第二個表時我需要如何從第一個表中選擇 Paletkod 並填充我的第三個表值(Uretici, Urun, Kilo, Kalibre)?

帶觸發器?

create trigger tr_au_CkisEks
after update on CkisEks
for each row
update UrunPaketDetay t1, Ckis_Detay t2
set t2.Uretici = t1.Uretici, 
   t2.Urun = t1.Urun, 
   t2.Kilo = t1.Kilo, 
   t2.Kalibre = t1.Kalibre
where t1.PaletKod = NEW.PaletKod
 and t2.PaletKod = NEW.PaletKod;
BEGIN

插入 Ckis_Detay (PaletKod, Barcode, Urun, Kalibre, Kilo, Uretici) 從 UrunPaketDetay 中選擇 PaletKod, Barcode, Urun, Kalibre, Kilo, Uretici WHERE PaletKod = PaletKod; 結尾

我對此觸發器進行了編碼,但是當我保存表 2 時,此觸發器將所有數據從表 1 獲取到表 3 但我只需要相同的 PaletKod 數據副本

引用自:https://dba.stackexchange.com/questions/216059