-
Notifications
You must be signed in to change notification settings - Fork 11
/
Copy pathchat.sql
235 lines (199 loc) · 8.29 KB
/
chat.sql
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
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;
-- ----------------------------
-- Table structure for chatgroup
-- ----------------------------
DROP TABLE IF EXISTS `chatgroup`;
CREATE TABLE `chatgroup` (
`groupid` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
`descption` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
`pub` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
`createid` int(11) NULL DEFAULT NULL,
`rdate` datetime(0) NOT NULL,
`count` int(11) NULL DEFAULT 1,
PRIMARY KEY (`groupid`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 100000 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for friend
-- ----------------------------
DROP TABLE IF EXISTS `friend`;
CREATE TABLE `friend` (
`groupid` int(11) NULL DEFAULT NULL,
`friendid` int(11) NULL DEFAULT NULL,
`notename` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic;
-- ----------------------------
-- Records of friend
-- ----------------------------
INSERT INTO `friend` VALUES (100, 10001, NULL);
INSERT INTO `friend` VALUES (100, 10002, NULL);
INSERT INTO `friend` VALUES (100, 10003, NULL);
INSERT INTO `friend` VALUES (101, 10000, NULL);
INSERT INTO `friend` VALUES (101, 10003, NULL);
INSERT INTO `friend` VALUES (100, 10004, NULL);
INSERT INTO `friend` VALUES (100, 10005, NULL);
-- ----------------------------
-- Table structure for offlinemsg
-- ----------------------------
DROP TABLE IF EXISTS `offlinemsg`;
CREATE TABLE `offlinemsg` (
`fromid` int(11) NULL DEFAULT NULL,
`toid` int(11) NULL DEFAULT NULL,
`msg` varchar(400) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
`mdate` datetime(0) NULL DEFAULT NULL
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for user
-- ----------------------------
DROP TABLE IF EXISTS `user`;
CREATE TABLE `user` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`username` varchar(40) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
`sign` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
`password` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
`phone` varchar(40) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
`sex` varchar(4) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
`addr` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
`rdate` datetime(0) NULL DEFAULT NULL,
PRIMARY KEY (`id`) USING BTREE,
UNIQUE INDEX `username`(`username`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 10006 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic;
-- ----------------------------
-- Records of user
-- ----------------------------
INSERT INTO `user` VALUES (10000, 'testaaa', '无愁无泪看似一出戏', 'chenhua', '15284152325', 'man', 'pyp', '2020-03-03 09:30:55');
INSERT INTO `user` VALUES (10001, 'test', 'test', 'test', '18584176', 'man', 'pyp', '2020-03-03 09:30:55');
INSERT INTO `user` VALUES (10002, 'test2', 'test2', 'chenshusa', '18318176', 'man', 'pyp', '2020-03-03 09:30:55');
INSERT INTO `user` VALUES (10003, 'test3', 'test3', 'chenhua', '183128551', 'man', 'pyp', '2020-03-03 09:30:55');
INSERT INTO `user` VALUES (10004, 'test4', 'test4', 'chenhua', '188525415', 'man', 'pyp', '2020-03-03 09:30:55');
INSERT INTO `user` VALUES (10005, 'test5', 'test5', 'chenhua', '1531854852', 'man', 'pyp', '2020-03-03 09:30:55');
-- ----------------------------
-- Table structure for usergroup
-- ----------------------------
DROP TABLE IF EXISTS `usergroup`;
CREATE TABLE `usergroup` (
`groupid` int(11) NOT NULL AUTO_INCREMENT,
`userid` int(11) NULL DEFAULT NULL,
`friendcount` int(11) NULL DEFAULT 0,
`groupname` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
PRIMARY KEY (`groupid`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 106 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic;
-- ----------------------------
-- Records of usergroup
-- ----------------------------
INSERT INTO `usergroup` VALUES (100, 10000, 5, '我的好友');
INSERT INTO `usergroup` VALUES (101, 10001, 2, '我的好友');
INSERT INTO `usergroup` VALUES (102, 10002, 0, '我的好友');
INSERT INTO `usergroup` VALUES (103, 10003, 0, '我的好友');
INSERT INTO `usergroup` VALUES (104, 10004, 0, '我的好友');
INSERT INTO `usergroup` VALUES (105, 10005, 0, '我的好友');
-- ----------------------------
-- Table structure for vgroup
-- ----------------------------
DROP TABLE IF EXISTS `vgroup`;
CREATE TABLE `vgroup` (
`groupid` int(11) NULL DEFAULT NULL,
`userid` int(11) NULL DEFAULT NULL,
`iscreater` int(11) NOT NULL,
`ismanager` int(11) NOT NULL,
`joindate` datetime(0) NOT NULL
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic;
-- ----------------------------
-- Triggers structure for table chatgroup
-- ----------------------------
DROP TRIGGER IF EXISTS `InsertChatgroup`;
delimiter ;;
CREATE TRIGGER `InsertChatgroup` AFTER INSERT ON `chatgroup` FOR EACH ROW Begin
insert into vgroup values(new.groupid,new.createid,0,0,now());
end
;;
delimiter ;
-- ----------------------------
-- Triggers structure for table chatgroup
-- ----------------------------
DROP TRIGGER IF EXISTS `DeleteChatgroup`;
delimiter ;;
CREATE TRIGGER `DeleteChatgroup` AFTER DELETE ON `chatgroup` FOR EACH ROW Begin
delete from vgroup where groupid = old.groupid;
end
;;
delimiter ;
-- ----------------------------
-- Triggers structure for table friend
-- ----------------------------
DROP TRIGGER IF EXISTS `InsertFriend`;
delimiter ;;
CREATE TRIGGER `InsertFriend` AFTER INSERT ON `friend` FOR EACH ROW Begin
update usergroup set friendcount=(select count(*) from friend where groupid = new.groupid ) where groupid = new.groupid;
end
;;
delimiter ;
-- ----------------------------
-- Triggers structure for table friend
-- ----------------------------
DROP TRIGGER IF EXISTS `DeleteFriend`;
delimiter ;;
CREATE TRIGGER `DeleteFriend` AFTER DELETE ON `friend` FOR EACH ROW Begin
update usergroup set friendcount=(select count(*) from friend where groupid = old.groupid ) where groupid = old.groupid;
end
;;
delimiter ;
-- ----------------------------
-- Triggers structure for table user
-- ----------------------------
DROP TRIGGER IF EXISTS `InsertUser`;
delimiter ;;
CREATE TRIGGER `InsertUser` AFTER INSERT ON `user` FOR EACH ROW Begin
insert into usergroup values(null,new.id,0,'我的好友');
end
;;
delimiter ;
-- ----------------------------
-- Triggers structure for table user
-- ----------------------------
DROP TRIGGER IF EXISTS `DeleteUser`;
delimiter ;;
CREATE TRIGGER `DeleteUser` BEFORE DELETE ON `user` FOR EACH ROW Begin
delete from usergroup where userid = old.id;
delete from chatgroup where createid = old.id;
end
;;
delimiter ;
-- ----------------------------
-- Triggers structure for table usergroup
-- ----------------------------
DROP TRIGGER IF EXISTS `DeleteGroup`;
delimiter ;;
CREATE TRIGGER `DeleteGroup` BEFORE DELETE ON `usergroup` FOR EACH ROW Begin
delete from friend where groupid = old.groupid;
end
;;
delimiter ;
-- ----------------------------
-- Triggers structure for table vgroup
-- ----------------------------
DROP TRIGGER IF EXISTS `InsertVgroup`;
delimiter ;;
CREATE TRIGGER `InsertVgroup` AFTER INSERT ON `vgroup` FOR EACH ROW Begin
declare co int;
select count from chatgroup where groupid = new.groupid into co;
set co = co + 1;
update chatgroup set count=co where groupid = new.groupid;
end
;;
delimiter ;
-- ----------------------------
-- Triggers structure for table vgroup
-- ----------------------------
DROP TRIGGER IF EXISTS `DeleteVgroup`;
delimiter ;;
CREATE TRIGGER `DeleteVgroup` AFTER DELETE ON `vgroup` FOR EACH ROW Begin
declare co int;
select count from chatgroup where groupid = old.groupid into co;
set co = co - 1;
update chatgroup set count=co where groupid = old.groupid;
end
;;
delimiter ;
SET FOREIGN_KEY_CHECKS = 1;