forked from chrsp42/VisualisierbaR
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathqueries
More file actions
executable file
·27 lines (23 loc) · 2.1 KB
/
queries
File metadata and controls
executable file
·27 lines (23 loc) · 2.1 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
ALTER TABLE `edges` ADD CONSTRAINT FK_VERTEX_FROM_ID FOREIGN KEY (vertex_ID_from) REFERENCES vertices(ID);
ALTER TABLE `edges` ADD CONSTRAINT FK_VERTEX_TO_ID FOREIGN KEY (vertex_ID_to) REFERENCES vertices(ID);
# Currently, not every row in objects_attributes can be bound to one in vertices
# Get object_IDs without vertices row:
# SELECT object_ID as ID FROM `objects_attributes` WHERE object_ID NOT IN(SELECT ID FROM `vertices`)
# SELECT attribute_ID as ID FROM `objects_attributes` WHERE attribute_ID NOT IN(SELECT ID FROM `attributes`)
# -> There are attribute_IDs with value 0
# ALTER TABLE `objects_attributes` CHANGE `object_ID` `object_ID` INT(11) NOT NULL;
# ALTER TABLE `objects_attributes` CHANGE `attribute_ID` `attribute_ID` INT(11) UNSIGNED NOT NULL;
# ALTER TABLE `objects_attributes` ADD CONSTRAINT FK_VERTEX FOREIGN KEY (object_ID) REFERENCES vertices(ID);
# ALTER TABLE `objects_attributes` ADD CONSTRAINT FK_ATTRIBUTE FOREIGN KEY (attribute_ID) REFERENCES attributes(ID);
ALTER TABLE `object_object_attributes` CHANGE `attribute_ID` `attribute_ID` INT(11) UNSIGNED NOT NULL;
ALTER TABLE `object_object_attributes` ADD CONSTRAINT FK_ATTRIBUTE FOREIGN KEY (attribute_ID) REFERENCES attributes(ID);
ALTER TABLE `neighbors` ADD CONSTRAINT FK_VERTEX_1 FOREIGN KEY (vertex1_ID) REFERENCES vertices(ID);
ALTER TABLE `neighbors` ADD CONSTRAINT FK_VERTEX_2 FOREIGN KEY (vertex2_ID) REFERENCES vertices(ID);
# Betriebsstellen can be NULL in vertices. Delete those -> Make betriebsstellen_ID NONNULL and add the foreign key
# ALTER TABLE `vertices` CHANGE `betriebsstellen_ID` `betriebsstellen_ID` SMALLINT(5) NOT NULL;
# ALTER TABLE `vertices` ADD CONSTRAINT FK_BETRIEBSSTELLE (betriebsstellen_ID) REFERENCES betriebsstellen(ID);
# Same goes for edge_ID
UPDATE `vertices`, `edges` SET vertices.edge_ID=edges.ID WHERE vertices.ID=edges.vertex_ID_from WHERE edge_ID IS NULL;
UPDATE `vertices`, `edges` SET vertices.edge_ID=edges.ID WHERE vertices.ID=edges.vertex_ID_to WHERE edge_ID IS NULL;
# REMOVE NULL edge_IDs
# ALTER TABLE `vertices` ADD CONSTRAINT FK_EDGE FOREIGN KEY (edge_ID) REFERENCES edge(ID);