2016-01-22 61 views
0

我有一個表中的四列(名稱:prdRevise,prdCode,prdMfgNmbr,prdID)。我通過PHP在前兩列插入值,並希望與其他三個值一起生成prdID。 prdMfgNmbr是autoincrement,它目前在new.prdMfgNmbr的地方插入'0'。以下是我正在使用的觸發器。如何在MySql中插入在插入之前選擇自動遞增語句觸發ID

set new.prdId = concat(new.prdCode, new.prdRevise, new.prdMfgNmbr) 

以下查詢給我即將到來的Auto_Increment值。 。不知道如何在triger中使用它。

SELECT `AUTO_INCREMENT` 
FROM INFORMATION_SCHEMA.TABLES 
WHERE TABLE_SCHEMA = 'labautomation' 
AND TABLE_NAME = 'prdmfg'; 
+1

在插入前,您不能指望自動增加字段具有適當的值(例如插入的id)**!如果您在插入前將觸發器更改爲插入後,它將起作用。 – Shadow

+0

更新後記錄不允許更新記錄。 。 。 –

+0

好的,你在問題的第一句中混合了表和字段名稱的概念。也許你應該改正這一點。我認爲觸發器會將一段新數據插入另一個表中。 – Shadow

回答

-1

我想出了一個辦法做到的事,在前端的PHP:

$qry5="SELECT `AUTO_INCREMENT`FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = 'labautomation'AND TABLE_NAME ='prdmfg'";   
     $qrprId=mysql_query($qry5); 
     $qrMfgNmbr = mysql_fetch_assoc($qrprId); 
     $newqrMfgNmbr=$qrMfgNmbr['AUTO_INCREMENT']; 

讓我與其他值用它從農場到其發送到數據庫中prdID列中的值之後。但是Store程序的東西仍然值得讚賞。

+0

這就是你**不能**做!併發查詢可能會得到相同的值! – Shadow

相關問題