-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathcreate_tables_direct.sql
More file actions
86 lines (70 loc) · 2.42 KB
/
Copy pathcreate_tables_direct.sql
File metadata and controls
86 lines (70 loc) · 2.42 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
74
75
76
77
78
79
80
81
82
83
84
85
86
-- Direct table creation for testing
-- Execute this in phpMyAdmin if the stored procedure version doesn't work
SET foreign_key_checks = 0;
DROP TABLE IF EXISTS container_train;
DROP TABLE IF EXISTS Containers;
DROP TABLE IF EXISTS Shipments;
DROP TABLE IF EXISTS Trains;
DROP TABLE IF EXISTS RailYards;
CREATE TABLE RailYards (
railyard_id int NOT NULL AUTO_INCREMENT PRIMARY KEY,
train_capacity int
);
CREATE TABLE Trains (
train_id int NOT NULL AUTO_INCREMENT PRIMARY KEY,
train_name varchar(255),
engine_type ENUM('diesel','electric','hybrid')
);
CREATE TABLE Shipments (
shipment_id int NOT NULL AUTO_INCREMENT PRIMARY KEY,
description varchar(255),
weight_tons decimal(6,2),
origin_railyard_id int,
destination_railyard_id int,
FOREIGN KEY (origin_railyard_id) REFERENCES RailYards(railyard_id),
FOREIGN KEY (destination_railyard_id) REFERENCES RailYards(railyard_id)
);
CREATE TABLE Containers (
container_id int NOT NULL AUTO_INCREMENT PRIMARY KEY,
capacity_tons decimal(6,2),
current_rail_id int,
shipment_id int,
FOREIGN KEY (current_rail_id) REFERENCES RailYards(railyard_id),
FOREIGN KEY (shipment_id) REFERENCES Shipments(shipment_id)
);
CREATE TABLE container_train (
container_id int,
train_id int,
FOREIGN KEY (train_id) REFERENCES Trains(train_id),
FOREIGN KEY (container_id) REFERENCES Containers(container_id),
PRIMARY KEY (container_id, train_id)
);
INSERT INTO RailYards (railyard_id, train_capacity) VALUES
(101, 5),
(102, 4),
(103, 3),
(104, 6),
(105, 2);
INSERT INTO Trains (train_id, train_name, engine_type) VALUES
(301, 'Iron Express', 'diesel'),
(302, 'Coastal Runner', 'electric'),
(303, 'Midwest Hauler', 'hybrid'),
(304, 'Mountain Climber', 'diesel'),
(305, 'Sunset Liner', 'electric');
INSERT INTO Shipments (shipment_id, description, weight_tons, origin_railyard_id, destination_railyard_id) VALUES
(1, 'Furniture Delivery', 45.50, 101, 104),
(2, 'Electronics from SF to LA', 12.75, 102, 103),
(3, 'Steel Beams', 65.00, 101, 105),
(4, 'Books Shipment', 8.20, 103, 102),
(5, 'Automobile Parts', 33.00, 104, 105);
INSERT INTO Containers (container_id, capacity_tons, current_rail_id, shipment_id) VALUES
(201, 50.00, 101, 1),
(202, 15.00, 101, 2),
(203, 70.00, 101, 3),
(204, 10.00, 103, 4),
(205, 35.00, 105, 5);
INSERT INTO container_train (container_id, train_id) VALUES
(202, 301),
(203, 302),
(205, 303);
SET foreign_key_checks = 1;