-
Notifications
You must be signed in to change notification settings - Fork 400
Expand file tree
/
Copy pathV4.5.3__schema.sql
More file actions
73 lines (61 loc) · 2.69 KB
/
V4.5.3__schema.sql
File metadata and controls
73 lines (61 loc) · 2.69 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
alter table LicenseHistoryVO modify COLUMN `userName` varchar(64) NOT NULL;
ALTER TABLE LicenseHistoryVO ADD COLUMN capacity int(10) NOT NULL;
CREATE TABLE IF NOT EXISTS `zstack`.`IAM2VirtualIDInformationVO` (
`uuid` varchar(32) NOT NULL UNIQUE,
`phone` varchar(255),
`mail` varchar(255),
PRIMARY KEY (`uuid`),
CONSTRAINT `fkIAM2VirtualIDInformationVOIAM2VirtualIDVO` FOREIGN KEY (`uuid`) REFERENCES `IAM2VirtualIDVO` (`uuid`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
DELIMITER $$
CREATE PROCEDURE attributePhoneToInformation()
BEGIN
DECLARE vitualIdPhone VARCHAR(32);
DECLARE vitualIdUuid VARCHAR(32);
DECLARE done INT DEFAULT FALSE;
DECLARE phoneCursor CURSOR FOR SELECT virtualIDUuid, value from `zstack`.`IAM2VirtualIDAttributeVO` WHERE name = "phone";
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;
open phoneCursor;
read_loop: LOOP
FETCH phoneCursor INTO vitualIdUuid, vitualIdPhone;
IF done THEN
LEAVE read_loop;
END IF;
IF (select count(*) from IAM2VirtualIDInformationVO where uuid = vitualIdUuid) = 0 THEN
INSERT `zstack`.`IAM2VirtualIDInformationVO`(uuid, phone) values (vitualIdUuid, vitualIdPhone);
else
update `zstack`.`IAM2VirtualIDInformationVO` set phone = vitualIdPhone where uuid = vitualIdUuid;
END IF;
END LOOP;
close phoneCursor;
SELECT CURTIME();
END $$
DELIMITER ;
call attributePhoneToInformation();
DROP PROCEDURE IF EXISTS attributePhoneToInformation;
DELIMITER $$
CREATE PROCEDURE attributeMailToInformation()
BEGIN
DECLARE vitualIdMail VARCHAR(32);
DECLARE vitualIdUuid VARCHAR(32);
DECLARE done INT DEFAULT FALSE;
DECLARE mailCursor CURSOR FOR SELECT virtualIDUuid, value from `zstack`.`IAM2VirtualIDAttributeVO` WHERE name = "mail";
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;
open mailCursor;
read_loop: LOOP
FETCH mailCursor INTO vitualIdUuid, vitualIdMail;
IF done THEN
LEAVE read_loop;
END IF;
IF (select count(*) from IAM2VirtualIDInformationVO where uuid = vitualIdUuid) = 0 THEN
INSERT `zstack`.`IAM2VirtualIDInformationVO`(uuid, mail) values (vitualIdUuid, vitualIdMail);
ELSE
update `zstack`.`IAM2VirtualIDInformationVO` set mail = vitualIdMail where uuid = vitualIdUuid;
END IF;
END LOOP;
close mailCursor;
SELECT CURTIME();
END $$
DELIMITER ;
call attributeMailToInformation();
DROP PROCEDURE IF EXISTS attributeMailToInformation;