diff --git a/Chinook_Rev1.sql b/Chinook_Rev1.sql index 36a8186..20cf1df 100644 --- a/Chinook_Rev1.sql +++ b/Chinook_Rev1.sql @@ -96,9 +96,53 @@ ALTER TABLE customer ADD PersonID INT NOT NULL; ALTER TABLE employee ADD PersonID INT NOT NULL; /******************************************************************************* - Create Primary Key Unique Indexes + Move Data and alter tables ********************************************************************************/ +ALTER TABLE Person +ADD EmployeeId int; + +ALTER TABLE Person +ADD CustomerId int; + +INSERT INTO Person(FirstName, LastName, Address, City, State, Country, PostalCode,Phone,Fax,Email,CustomerId) +SELECT FirstName, LastName, Address, City, State, Country, PostalCode, Phone, Fax, Email,CustomerId +FROM Customer; + +UPDATE Customer +INNER JOIN Person ON (Customer.CustomerId = Person.CustomerId) +SET Customer.PersonId = Person.PersonId; + +Set @var1 = LAST_INSERT_ID(); + +ALTER TABLE Person +DROP COLUMN CustomerId; + +INSERT INTO Person(FirstName, LastName, Address, City, State, Country, PostalCode,Phone,Fax,Email,EmployeeId) +SELECT FirstName, LastName, Address, City, State, Country, PostalCode, Phone, Fax, Email,EmployeeId +FROM Employee; + +INSERT INTO Employee (PersonId) +SELECT PersonId +FROM Person +WHERE PersonId > @var1; + +ALTER TABLE Person +DROP COLUMN EmployeeId; + +ALTER TABLE Invoice +ADD PayId int; + +ALTER TABLE Employee +DROP COLUMN FirstName, DROP COLUMN LastName, DROP COLUMN Address, DROP COLUMN City, +DROP COLUMN State, DROP COLUMN Country, DROP COLUMN PostalCode, DROP COLUMN Phone, DROP COLUMN Fax, DROP COLUMN Email; + +ALTER TABLE Customer +DROP COLUMN FirstName, DROP COLUMN LastName, DROP COLUMN Address, DROP COLUMN City, +DROP COLUMN State, DROP COLUMN Country, DROP COLUMN PostalCode, DROP COLUMN Phone, DROP COLUMN Fax, DROP COLUMN Email; + + + /******************************************************************************* Create Foreign Keys ********************************************************************************/ @@ -178,34 +222,6 @@ ALTER TABLE `Invoice` ADD CONSTRAINT `FK_PayId` CREATE INDEX `IFK_PayId` ON `PayId` (`PayId`); -/******************************************************************************* - Move Data -********************************************************************************/ - -INSERT INTO Person(FirstName, LastName, Address, City, State, Country, PostalCode,Phone,Fax,Email) -SELECT(FirstName, LastName, Address, City, State, Country, PostalCode, Phone, Fax, Email) -FROM Customer; - -INSERT INTO Person(FirstName, LastName, Address, City, State, Country, PostalCode,Phone,Fax,Email) -SELECT(FirstName, LastName, Address, City, State, Country, PostalCode, Phone, Fax, Email) -FROM Employee; - -/******************************************************************************* - Alter Tables -********************************************************************************/ - -ALTER TABLE Invoice -ADD PayId int; - -ALTER TABLE Employee -DROP COLUMN FirstName, DROP COLUMN LastName, DROP COLUMN Address, DROP COLUMN City, -DROP COLUMN State, DROP COLUMN Country, DROP COLUMN PostalCode, DROP COLUMN Phone, DROP COLUMN Fax, DROP COLUMN Email; - -ALTER TABLE Customer -DROP COLUMN FirstName, DROP COLUMN LastName, DROP COLUMN Address, DROP COLUMN City, -DROP COLUMN State, DROP COLUMN Country, DROP COLUMN PostalCode, DROP COLUMN Phone, DROP COLUMN Fax, DROP COLUMN Email; - -