34935-vm/db/migrations/20251014_create_hurricanes_table.sql
2025-10-14 04:07:36 +00:00

61 lines
2.5 KiB
SQL

CREATE TABLE IF NOT EXISTS `hurricanes` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(255) NOT NULL,
`year` int(11) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
CREATE TABLE IF NOT EXISTS `hurricane_tracks` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`hurricane_id` int(11) NOT NULL,
`lat` decimal(9,6) NOT NULL,
`lon` decimal(9,6) NOT NULL,
`wind_speed_mph` int(11) NOT NULL,
`timestamp` int(11) NOT NULL,
PRIMARY KEY (`id`),
KEY `hurricane_id` (`hurricane_id`),
CONSTRAINT `hurricane_tracks_ibfk_1` FOREIGN KEY (`hurricane_id`) REFERENCES `hurricanes` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- Clear existing data to prevent duplicates on re-run
SET FOREIGN_KEY_CHECKS = 0;
DELETE FROM `hurricanes`;
DELETE FROM `hurricane_tracks`;
SET FOREIGN_KEY_CHECKS = 1;
ALTER TABLE `hurricanes` AUTO_INCREMENT = 1;
ALTER TABLE `hurricane_tracks` AUTO_INCREMENT = 1;
-- Populate data
-- Hurricane Andrew (1992)
INSERT INTO `hurricanes` (`name`, `year`) VALUES ('Andrew', 1992);
SET @andrew_id = LAST_INSERT_ID();
INSERT INTO `hurricane_tracks` (`hurricane_id`, `lat`, `lon`, `wind_speed_mph`, `timestamp`) VALUES
(@andrew_id, 25.200000, -75.700000, 150, 1661299200),
(@andrew_id, 25.400000, -77.700000, 160, 1661310000),
(@andrew_id, 25.500000, -79.700000, 175, 1661320800),
(@andrew_id, 25.600000, -81.700000, 165, 1661331600),
(@andrew_id, 25.800000, -83.700000, 145, 1661342400),
(@andrew_id, 26.200000, -85.700000, 135, 1661353200);
-- Hurricane Katrina (2005)
INSERT INTO `hurricanes` (`name`, `year`) VALUES ('Katrina', 2005);
SET @katrina_id = LAST_INSERT_ID();
INSERT INTO `hurricane_tracks` (`hurricane_id`, `lat`, `lon`, `wind_speed_mph`, `timestamp`) VALUES
(@katrina_id, 23.100000, -80.100000, 80, 1124928000),
(@katrina_id, 24.500000, -81.800000, 95, 1124985600),
(@katrina_id, 26.000000, -85.000000, 110, 1125043200),
(@katrina_id, 28.200000, -89.600000, 175, 1125100800),
(@katrina_id, 30.200000, -89.600000, 125, 1125158400),
(@katrina_id, 31.100000, -89.600000, 75, 1125216000);
-- Hurricane Irma (2017)
INSERT INTO `hurricanes` (`name`, `year`) VALUES ('Irma', 2017);
SET @irma_id = LAST_INSERT_ID();
INSERT INTO `hurricane_tracks` (`hurricane_id`, `lat`, `lon`, `wind_speed_mph`, `timestamp`) VALUES
(@irma_id, 16.100000, -55.000000, 175, 1504656000),
(@irma_id, 18.200000, -63.000000, 185, 1504742400),
(@irma_id, 22.000000, -75.000000, 160, 1504828800),
(@irma_id, 23.500000, -81.500000, 130, 1504915200),
(@irma_id, 25.900000, -81.700000, 115, 1505001600),
(@irma_id, 28.900000, -82.400000, 75, 1505088000);