2012-05-23 47 views
1

我認爲在PostgreSQL中,您可以使用函數在表中生成主鍵而不是僅使用auto_increment。類似於:MySQL用戶定義的函數來生成主鍵

CREATE TABLE `blah` (
    `id` bigint(20) unsigned NOT NULL my_generator_function(), 
    etc. 

其中my_generator_function()會返回一個bigint。

這可能與MySQL或我必須從應用程序代碼自己做到這一點?

回答

2

您可以創建一個觸發器 -

CREATE TRIGGER trigger1 
    BEFORE INSERT 
    ON table1 
    FOR EACH ROW 
BEGIN 
    IF NEW.id = 0 THEN -- generate new ID if zero is set 
    SET NEW.id = ...; -- write your code to generate new ID 
    END IF; 
END 
+0

這就是我所需要的,謝謝 –