2013-05-17 92 views
1

在MySQL我需要知道,如果有可能的BEFORE INSERT觸發,以找出是否主鍵ID(NEW.Id)由自動遞增值或者如果ID是手動集被自動生成。找出在插入觸發器之前ID是否自動遞增?

原因是在我的應用程序行可以插入一個設置ID或依靠自動遞增值,但我需要知道這一點。

如果在插入行時留空,NEW.Id在before觸發器中的值是多少? 它似乎不是NULL,那麼它已被設置爲當前的自動增量值? 但如何發現,如果這是發生?

UPDATE: 看來整數型主鍵(NEW.Id)的值在BEFORE INSERT觸發器是0(不空!),即使有此設置沒有默認值柱。

+0

爲什麼你需要知道這個? (不知道是否有可能) –

+0

我正在使用一個單獨的表來實現我自己的序列解決方案,該表包含每個表的新序列值。但我仍然想使用MySQL的自動增量功能... – Dylan

回答

0

你需要把觸發器在AFTER選項,比你將是最後一次回到了ID,如果你把扳機上BEFORE選項,執行的動作會給你零值,因爲沒有有任何價值。