· 10 years ago · Sep 20, 2016, 05:32 PM
1CREATE TABLE IF NOT EXISTS `sistema`.`user` (
2 `id_user` INT NOT NULL AUTO_INCREMENT COMMENT '',
3 `hashed_id` VARCHAR(40) NOT NULL COMMENT '',
4 `nome` VARCHAR(40) NOT NULL COMMENT '',
5 `cpf` VARCHAR(15) NOT NULL COMMENT '',
6 UNIQUE INDEX `hashed_id_UNIQUE` (`hashed_id` ASC) COMMENT '',
7 ON DELETE NO ACTION
8 ON UPDATE NO ACTION)
9ENGINE = InnoDB;
10
11CREATE DEFINER = CURRENT_USER TRIGGER `sistema`.`user_BEFORE_INSERT` BEFORE INSERT ON `user` FOR EACH ROW
12BEGIN
13SELECT @lid:=LAST_INSERT_ID();
14UPDATE user
15SET
16 hashed_id = CONCAT(SUBSTRING('ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789',
17 RAND(@seed:=ROUND(RAND(@lid) * 4294967296)) * 36 + 1,
18 1),
19 SUBSTRING('ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789',
20 RAND(@seed:=ROUND(RAND(@seed) * 4294967296)) * 36 + 1,
21 1),
22 SUBSTRING('ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789',
23 RAND(@seed:=ROUND(RAND(@seed) * 4294967296)) * 36 + 1,
24 1),
25 SUBSTRING('ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789',
26 RAND(@seed:=ROUND(RAND(@seed) * 4294967296)) * 36 + 1,
27 1),
28 SUBSTRING('ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789',
29 RAND(@seed:=ROUND(RAND(@seed) * 4294967296)) * 36 + 1,
30 1),
31 SUBSTRING('ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789',
32 RAND(@seed:=ROUND(RAND(@seed) * 4294967296)) * 36 + 1,
33 1),
34 SUBSTRING('ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789',
35 RAND(@seed:=ROUND(RAND(@seed) * 4294967296)) * 36 + 1,
36 1),
37 SUBSTRING('ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789',
38 RAND(@seed) * 36 + 1,
39 1))
40WHERE
41 id = @lid;
42END