2015-07-26 3 views
0

Как сгенерировать идентификаторы для пользователей после их регистрации. Тип ID, который я хочу, имеет следующий формат: (ABCDEF2015xxx). Например, первый пользователь, зарегистрировавшийся в 2015 году, будет иметь этот идентификатор: ABCDEF2015001. Следующий пользователь будет иметь идентификатор: ABCDEF2015002. И в следующем году у первого пользователя будет ID: ABCDEF2016001.Как сгенерировать идентификаторы в порядке в соответствии с датой в C#

С уважением.

+0

Это что-то происходит в базе данных? –

+0

Да, это так. И это должно быть в порядке –

+1

Какая база данных? Вы можете использовать составные клавиши ... –

ответ

0

Я думаю, вы можете достичь этого, используя триггер. Я никогда не использовал mysql. Но googled и написал несколько пробных триггеров. Я мог бы не работать так, возможно, вам придется исправить некоторые проблемы. Но вы можете следовать той же идее.

CREATE TRIGGER tg_table1_insert 
BEFORE INSERT ON table1 
FOR EACH ROW 
BEGIN 
    INSERT INTO table1_seq VALUES (NULL); 
    $query = mysql_query(CONCAT('SELECT max(CAST(SUBSTRING(id,11) AS BIGINT)) as id FROM table1 where SUBSTRING(ID,7,4) =',CAST(YEAR() AS CHAR))); 
    while ($row = mysql_fetch_object($query)) { 
    $lastId = $row->id; 
    } 
    if($lastid IS NULL) THEN 
    $newid = CONCAT('ABCDEF', CAST(YEAR() AS CHAR), '001') 
    ELSE 
    $newid = CONCAT('ABCDEF', CAST(YEAR() AS CHAR), CAST($lastId+1 AS CHAR)) 
    END IF; 
    SET NEW.id = $newid; 
END$$